java里data_Lombok中关于@Data的使用
时间: 2024-01-21 18:18:14 浏览: 76
在 Java 中,Lombok 是一个非常流行的库,它可以通过注解来简化代码的编写,其中 @Data 是 Lombok 中的一个注解,它可以自动生成 getter、setter、equals、hashCode、toString 等方法。
使用 @Data 注解时,编译器会自动为类中的所有字段生成 getter 和 setter 方法,并且还会自动生成 equals、hashCode 和 toString 方法。这样可以大大减少开发者的工作量,使代码更加简洁。
例如,我们定义一个 User 类:
```
@Data
public class User {
private String name;
private int age;
}
```
在这个例子中,我们使用了 @Data 注解来简化代码,这样就不需要手动编写 getter、setter、equals、hashCode 和 toString 方法了。现在可以通过以下方式访问 User 对象的属性:
```
User user = new User();
user.setName("Tom");
user.setAge(20);
System.out.println(user.getName());
System.out.println(user.getAge());
```
这样就可以简单地对 User 对象的属性进行赋值和读取了。
相关问题
lombok中的@data
`@Data` 是 Lombok 中的一个注解,它可以自动为类生成一些常用的方法,例如 `toString()`、`equals()`、`hashCode()` 等方法。使用 `@Data` 注解可以简化 Java 类的编写,减少样板代码的编写量。同时,`@Data` 还可以为类中的所有属性自动生成 getter 和 setter 方法。
举个例子,假设我们有一个 Java 类:
```java
public class User {
private String username;
private String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
```
使用 `@Data` 注解可以将上述类简化为以下代码:
```java
@Data
public class User {
private String username;
private String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
}
```
可以看到,使用 `@Data` 注解使得我们无需手动编写 getter 和 setter 方法,也不需要手写 `toString()`、`equals()`、`hashCode()` 等方法,这大大简化了 Java 类的编写。
Lombok的`@Data`和Spring的`@ConfigurationProperties`如何协同工作?
Lombok的`@Data`注解是一个方便的工具,它会为类自动生成一些常见的字段访问ors、equals()、hashCode()、toString()和默认构造函数等,使得POJO(Plain Old Java Object,简单的Java对象)更加易于使用。
而Spring的`@ConfigurationProperties`注解用于将配置属性绑定到Spring Bean上的bean properties上,当应用启动时,Spring会自动从外部配置源(如application.properties或application.yml文件)读取并设置这些属性。
它们可以协同工作的场景是在Spring Boot项目中,当你有一个需要保存配置数据的对象,并希望简化它的创建过程。首先,使用`@Data`注解生成基础的getter/setter方法。然后,在`@ConfigurationProperties`前加上这个类名,Spring就会自动扫描并加载属性文件中的对应键值对,填充到这个类实例的字段中。
例如:
```java
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@Data
@ConfigurationProperties(prefix = "myapp.config")
public class AppConfig {
private String name;
private int port;
// 其他配置项...
}
```
现在,你可以直接通过`@Autowired AppConfig config`来注入配置,Spring会在启动时自动从配置文件中读取`myapp.config.name`和`myapp.config.port`等属性。
阅读全文