@Data
註解是 Lombok 提供的一個非常實用的註解。它可以自動為類生成常用的功能,減少樣板程式碼的編寫。具體來說,使用 @Data
註解會自動為你的類生成以下元素:
1. Getter 和 Setter 方法
對於類中的每個欄位,Lombok 會自動生成對應的 getter 和 setter 方法。這意味著你無需手動編寫這些方法,從而簡化了程式碼。
2. toString 方法
@Data
自動生成 toString()
方法,這樣你可以方便地列印物件的字串表示,包含所有欄位的資訊。
3. equals 和 hashCode 方法
Lombok 會生成 equals()
和 hashCode()
方法,以便於物件之間的比較和集合中元素的唯一性檢查。這些方法會基於物件的欄位值進行比較。
4. 構造器
@Data
會生成一個全域性的構造器(即包含所有欄位的構造方法),允許你以一種簡潔的方式建立物件。
示例程式碼
以下是一個示例,展示了 @Data
註解的用法:
import lombok.Data; @Data public class User { private String name; private int age; }
自動生成的方法
使用 @Data
註解後,Lombok 會自動生成的程式碼大致如下:
public class User { private String name; private int age; // Getter 和 Setter 方法 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; } // toString 方法 @Override public String toString() { return "User{name='" + name + "', age=" + age + "}"; } // equals 和 hashCode 方法 @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof User)) return false; User user = (User) o; return age == user.age && Objects.equals(name, user.name); } @Override public int hashCode() { return Objects.hash(name, age); } // 全引數構造器 public User(String name, int age) { this.name = name; this.age = age; } }
總結
@Data
註解是一個強大的工具,可用來簡化類的設計,減少樣板程式碼。它自動生成 getter、setter、
toString
、equals
和hashCode
方法,提供全引數的構造器。適用於需要簡單 Java Bean 類的場景,尤其是在涉及到資料封裝時。
使用 Lombok 的 @Data
註解後,可以使你的程式碼更加簡潔和易讀,提高開發效率。
作者:國謙
連結:https://juejin.cn/post/7431606960553426944