Categories: Thông tin

Lombok là gì? Sinh code tự động trên Eclipse

Lombok là gì ? Sinh code tự động hóa trên Eclipse – Intellij

1. Lombok là gì?

Lombok là một thư viện Java giúp tự sinh ra những hàm setter / getter, hàm khởi tạo, toString … và tinh gọn chúng .
Thực tế thì hầu hết những IDE hiện này đều tương hỗ sinh code tự động hóa ví dụ như trên eclipse ta click chuột phải vào file cần sinh code và chọn Source và chọn những method cần sinh ra .

Tuy nhiên với những class có nhiều thuộc tính thì việc hiển thị những hàm getter / setter hay những hàm toString sẽ khiến cho class bị rối. Lombok sinh ra chính là để khắc phục những điểm đó .
Ví dụ class không sử dụng lombok và class có sử dụng lombok :

2. Cài đặt Lombok

Để sử dụng những annotation của Lombok ta cần sử dụng thư viện lombok :
Sử dụng maven :

    org.projectlombok
    lombok
    1.16.20
    provided

Hoặc tải về file lombok-1.16.20.jar

Cài đặt plugin lombok cho IDE

Với Intellij : vào File / Settings / Plugins và nhập lombok ở ô tìm kiếm và click install .

Với Eclipse: ta click vào file lombok-1.16.20.jarhoặc chạy lệnh java -jar lombok-1.16.20.jar

Trên giao diện setup lombock, ta click button “ Specify Location ” và trỏ tới file eclipse.exe

Sau khi setup thành công xuất sắc ta sẽ thây lombok Open trong phần about của eclipse .

3. Code ví dụ với lombok

Đầu tiên là với annotion @Getter @Setter sẽ giúp sinh ra các  method getter/setter

Ngoài cách dùng annotation @Getter @Setter trước các field ta có thể dùng trước class để áp dụng cho tất cả các field

Annotation @AllArgsConstructor@NoArgsConstructor giúp tạo ra các hàm khởi tạo với tất cả các tham số và hàm khởi tạo không tham số

Annotation @ToString @EqualsAndHashCode giúp tạo ra các hàm equaltoString theo tất cả các thuộc tính.

Nếu bạn chỉ muốn equal hay toString cho 1 số ít field thì hoàn toàn có thể dùng thêm thuộc tính exclude :
Ví dụ mình chỉ muốn toString trả về name, và hàm equal theo name :

@ToString(exclude="address")
@EqualsAndHashCode(exclude="address")
public class Person {
  @Getter @Setter private String name;
  @Getter @Setter private String address;
}

Annotation @Data sẽ tương đương với annotation @Getter + @Setter + @ToString + @EqualsAndHashCode + @NoArgsConstructor

Demo:

Ta không khai báo hàm khởi tạo với tham số và những hàm getter / setter nhưng vẫn hoàn toàn có thể gọi nó vì lombok đã tự generate và tối ưu nó .

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.ToString;

@ToString(exclude = "address")
@AllArgsConstructor
@Data
public class Person {
  private String name;
  private String address;
  
  public static void main(String[] args) {
    Person person = new Person("kai", "Ha Noi - Viet Nam");
    System.out.println(person);
    System.out.println("Address: " + person.getAddress());
  }

}

Kết quả :

Lombok là gì ? Sinh code tự động hóa trên Eclipse – Intellij stackjava.com

Okay, Done !

Download code ví dụ trên tại đây.

References :
https://projectlombok.org/features/all

Source: https://vn.exp.gg
Category: Thông tin

Recent Posts

Tầm nhìn đầy tham vọng của Hideo Kojima: Tạo ra những trò chơi gây ấn tượng với người ngoài hành tinh

Nhà sáng tạo trò chơi điện tử nổi tiếng Hideo Kojima được nhiều game thủ…

2 tuần ago

Chính thức rồi! Sự kết hợp giữa Magic: The Gathering và Final Fantasy vào năm 2025

Gần đây, Square Enix đã công bố một dự án hợp tác thú vị với…

3 tuần ago

Giá của Assassin’s Creed Shadows Collector’s Edition bất ngờ giảm

Kể từ khi trò chơi được công bố chính thức, nó đã bị bao phủ…

3 tuần ago

Nhà phát triển Tekken 8 xin lỗi và chấp nhận lời chỉ trích của game thủ

Nhà phát triển của Tekken 8 đã xin lỗi và chấp nhận những ý kiến…

4 tuần ago

Các game thủ đối mặt với thử thách từ Great Ape Vegeta trong trò chơi Dragon Ball Sparking! Zero

Trò chơi Dragon Ball mới nhất, có tên gọi Dragon Ball Sparking! Zero, đã được…

1 tháng ago

Thổ Nhĩ Kỳ Cấm Ứng Dụng Discord Theo Sau Nga

Xu hướng cấm ứng dụng Discord tại một số quốc gia đang tiếp diễn. Sau…

1 tháng ago