在解决 IDEA 中 @Data 标签 getset 不起作用的问题之前,我们先简单介绍一下 @Data 标签和 lombok 工具。
什么是 @Data 标签
@Data 是 lombok 提供的一个注解,可以替代我们手写 get、set 方法等,可以有效简化我们开发过程中的冗余代码。例如:
@Data
public class Student {
private String name;
private int age;
}
使用了 @Data 注解之后,lombok 会为我们自动生成以下代码:
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
// ...
}
@Override
public int hashCode() {
// ...
}
@Override
public String toString() {
// ...
}
}
lombok 工具
lombok 是一个 Java 开发工具,可帮助我们消除 Java 代码中的冗余代码。例如,使用 @Data 注解可以自动生成 get、set 方法,使用 @Slf4j 注解可以自动生成日志记录器等。
IDEA 中 @Data 标签 getset 不起作用的问题
在某些情况下,我们使用 IDEA 工具的时候会发现在类中添加了 @Data 注解之后,IDEA 并没有生成对应的 get、set 方法,导致我们无法直接调用类中的属性值,这时候我们需要解决这个问题。
解决方法一
第一种解决方法是在 IDEA 的插件中安装 lombok 插件,步骤如下:
- 打开 IDEA 工具
- 菜单栏 -> File -> Setting -> Plugins
- 在右侧搜索栏中输入 lombok,点击 Install 安装插件即可
解决方法二
第二种解决方法是在 IDEA 中手动添加 lombok.jar 包,步骤如下:
- 下载对应版本的 lombok.jar 包(注意:下载的版本需要与 IDEA 工具的版本匹配),例如将 lombok-1.18.20.jar 下载到本地
- 在 IDEA 工具中打开项目,right-click on the project -> Modules -> Dependencies -> Add -> JARs or directories -> 找到刚才下载的 lombok.jar 包并选择 -> Apply
示例说明
以下是使用 @Data 标签的示例代码:
@Data
public class Orders {
private String orderNumber;
private String customerName;
private String shipAddress;
}
以上代码会自动生成以下代码:
public class Orders {
private String orderNumber;
private String customerName;
private String shipAddress;
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getShipAddress() {
return shipAddress;
}
public void setShipAddress(String shipAddress) {
this.shipAddress = shipAddress;
}
@Override
public boolean equals(Object o) {
// ...
}
@Override
public int hashCode() {
// ...
}
@Override
public String toString() {
// ...
}
}
我们可以直接调用实例中的属性值或赋值:
Orders order = new Orders();
order.setOrderNumber("20200101");
String orderNumber = order.getOrderNumber(); // "20200101"
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决idea中@Data标签getset不起作用的问题 - Python技术站