@Accessors(chain = true) @Data @Slf4j @NoArgsConstructor public class Terminal extends IdentifiedObject {
上午看新公司的项目时,碰到这样的一个标签 @Accessors(chain = true) 之前貌似从来没见过
百度发现是lombok引入的标签 标签介绍(https://www.projectlombok.org/features/experimental/Accessors)
具体就是这段
大概的试了一下
package test; import lombok.Data; import lombok.experimental.Accessors; @Data public class AccessorsDemo { private String name; /* *fluent设置为true后get set方法没有get set前缀 * 而且set方法会返回对象 */ @Accessors(fluent = true) private String nameFluent; /* *相对于正常情况下,此时的set方法会返回对象 */ @Accessors(chain = true) private String nameChain; /* * 此处的属性名要符合驼峰命名法才可以 * 如果属性名仅为name则在运行期会抛异常(编译期IntelliJ 不会告警) */ @Accessors(prefix = {"n"}) private String nNamePrefix; public AccessorsDemo(String name) { this.name = this.nameFluent = this.nameChain = this.nNamePrefix = name ; } public static void main(String[] args) { AccessorsDemo demo = new AccessorsDemo("zhangsan"); System.out.println(demo.getName()); System.out.println(demo.nameFluent());//这里的get方法就没有 get前缀 System.out.println(demo.getNameChain()); System.out.println(demo.getNamePrefix());//getNamePrefix 正常情况下应该是getNNamePrefix 少了一个N demo.setName("lisi");//返回类型 void demo.nameFluent("lisi");//返回类型 AccessorsDemo demo.setNameChain("lisi");//返回类型 AccessorsDemo demo.setNamePrefix("lisi");//返回类型 void } }