lombok对于使用了@Accessors(chain=true),非is开头的boolean型成员属性生成的getter方法是什么样的?
时间: 2023-06-14 16:07:44 浏览: 52
使用了@Accessors(chain=true)注解后,非is开头的boolean型成员属性生成的getter方法会被生成成以get开头的方法,例如:getXXXX(),而不是以is开头的方法。这是因为@Accessors(chain=true)注解会将getter方法的返回值设为当前类的对象,以便支持链式调用。因此,如果你使用了@Accessors(chain=true)注解,并且使用了非is开头的boolean型成员属性,你需要使用getXXXX()方法来获取属性值。
相关问题
lombok @Accessors(chain = true) 是什么意思?
@Accessors(chain = true) 是 Lombok 提供的一个注解,它的作用是为一个类生成 chain 链式调用的方法。
当我们使用 @Accessors(chain = true) 注解注释一个类时,Lombok 会为该类的每个返回值为该类本身的 setter 方法自动添加 @return this 语句,从而实现链式调用。这样,我们就可以使用一条语句实现对一个对象的多个属性进行设置,从而简化了代码。
举个例子,假设有一个类 Person,使用 @Accessors(chain = true) 后,我们可以这样进行链式调用:
```
Person person = new Person().setName("Tom").setAge(20);
```
这条语句等价于:
```
Person person = new Person();
person.setName("Tom");
person.setAge(20);
```
但是使用链式调用更加简洁明了。
@Accessors(fluent = true) 与 @Accessors(chain = true) 的区别
`@Accessors(fluent = true)` 和 `@Accessors(chain = true)` 都是 Lombok 注解,用于简化 Java 类的 getter 和 setter 方法的编写。它们的区别在于:
`@Accessors(fluent = true)` 会生成没有 `get` 或 `set` 前缀的 getter 和 setter 方法,这样可以使代码更加简洁易读。例如,如果一个属性名为 `name`,使用 `@Accessors(fluent = true)` 注解后,生成的 getter 方法名为 `name()`,setter 方法名为 `name(String name)`。
`@Accessors(chain = true)` 会生成返回对象本身的 setter 方法,这样可以实现链式调用。例如,如果一个属性名为 `age`,使用 `@Accessors(chain = true)` 注解后,可以使用链式调用的方式设置属性值,例如 `user.setAge(31).setName("pollyduan")`。
下面是一个示例代码,演示了 `@Accessors(fluent = true)` 和 `@Accessors(chain = true)` 的用法:
```java
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(fluent = true)
public class User1 {
private Integer id;
private String name;
private Integer age;
}
@Data
@Accessors(chain = true)
public class User2 {
private Integer id;
private String name;
private Integer age;
}
public class Test {
public static void main(String[] args) {
User1 user1 = new User1().id(1).name("pollyduan").age(31);
System.out.println(user1.name()); // 输出:pollyduan
User2 user2 = new User2().setId(1).setName("pollyduan").setAge(31);
System.out.println(user2.getName()); // 输出:pollyduan
}
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![jar](https://img-home.csdnimg.cn/images/20210720083455.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)