0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Hướng Dẫn Sử Dụng Thư Viện Lombok Trong Dự Án Xây Dựng Blog

Đăng vào 3 tuần trước

• 4 phút đọc

Chủ đề:

@ezyplatform

Giới Thiệu Về Thư Viện Lombok

Lombok là một thư viện nổi bật trong thế giới lập trình Java, được sử dụng để giảm thiểu mã soạn sẵn, giúp các lập trình viên tiết kiệm thời gian và công sức. Với tính năng sử dụng chú thích (annotation), Lombok không chỉ giúp mã nguồn trở nên dễ đọc hơn mà còn tiết kiệm không gian lưu trữ.

Khi áp dụng các chú thích từ Lombok, mã Java sẽ được tự động tạo ra trong quá trình biên dịch. Điều này có nghĩa là, mặc dù Lombok giúp cho các lập trình viên viết mã ngắn gọn hơn, mã nguồn đầy đủ vẫn được tạo ra trong nền tảng.

Một số chú thích thường được sử dụng trong Lombok bao gồm: @Getter, @Setter, @NoArgsConstructor, @AllArgsConstructor, @ToString, @EqualsAndHashCode, @Data, và @Builder.

Chú Thích @Getter và @Setter

Các chú thích này giúp tự động tạo phương thức để lấy và gán giá trị cho trường (thuộc tính) trong lớp. Cụ thể, @Getter sẽ cung cấp một phương thức get với quyền truy cập là public, trả về giá trị của trường dữ liệu tương ứng, ví dụ phương thức sẽ được đặt tên là getName() nếu thuộc tính được chú thích là “name”. Ngược lại, @Setter sẽ tạo ra phương thức set với quyền truy cập public, không trả về giá trị, và nhận tham số để gán cho trường dữ liệu, ví dụ sẽ có tên là setName() nếu thuộc tính là “name”.

Để sử dụng @Getter và @Setter của từng thuộc tính, bạn chỉ cần đặt chú thích này trước các thuộc tính tương ứng. Ngoài ra, nếu muốn áp dụng cho tất cả các thuộc tính trong lớp, bạn chỉ cần để chú thích này trước lớp.

Ví dụ sử dụng @Getter và @Setter cho các thuộc tính trong lớp:

java Copy
public class Employee {
    private @Getter @Setter Integer employeeId;
    private @Getter @Setter String name;
    private @Getter @Setter String company;
    private @Getter @Setter String emailId;
}

Ví dụ sử dụng @Getter và @Setter trước lớp:

Khi sử dụng @Getter trong lớp trên, bạn sẽ lấy được tất cả các thuộc tính của lớp.

Chú Thích @NoArgsConstructor

Chú thích này tạo ra một hàm khởi tạo không có tham số, giúp khởi tạo đối tượng một cách dễ dàng hơn chỉ với một lệnh duy nhất.

Chú Thích @AllArgsConstructor

Ngược lại, chú thích này sẽ tạo ra một hàm khởi tạo có đầy đủ tham số, khá hữu ích khi bạn muốn khởi tạo tất cả các thuộc tính ngay lập tức khi tạo đối tượng.

Chú Thích @ToString

Chú thích này cho phép bạn ghi đè phương thức toString(). Với @ToString, bạn có thể chỉ định bỏ qua một số trường không cần thiết bằng cách sử dụng @ToString.Exclude.

Ví dụ sử dụng @ToString:

java Copy
@ToString
public class Person {
    private String name;
    private int age;

    @ToString.Exclude
    private String password;

    public Person(String name, int age, String password) {
        this.name = name;
        this.age = age;
        this.password = password;
    }

    public static void main(String[] args) {
        Person person = new Person("John Doe", 30, "securepassword");
        System.out.println(person.toString());
    }
}

Bên cạnh việc bỏ qua các trường nhất định, bạn cũng có thể chỉ định chỉ xuất ra các trường dữ liệu cụ thể:

java Copy
class Test {
    @ToString(of = {"name", "password"})
    static class Person {
        private String name;
        private int age;
        private String password;

        public Person(String name, int age, String password) {
            this.name = name;
            this.age = age;
            this.password = password;
        }
    }

    public static void main(String[] args) {
        Person person = new Person("Anh", 12, "clrscr");
        System.out.println(person.toString());
    }
}

Chú Thích @EqualsAndHashCode

Chú thích này cho phép bạn ghi đè phương thức equals() và hashCode(). Mặc định, nó sẽ sử dụng tất cả các thuộc tính non-static. Tuy nhiên, bạn có thể loại trừ một số thuộc tính không muốn sử dụng cho phương thức này bằng cách áp dụng @EqualsAndHashCode.Exclude.

Chú Thích @Data

Chú thích này gói gọn các chú thích @ToString, @Getter, @Setter, @EqualsAndHashCode và @RequiredArgsConstructor thành một chú thích duy nhất, giúp viết mã nhanh chóng và gọn gàng hơn.

Chú Thích @Builder

Cuối cùng, chú thích này rất hữu ích để giảm thiểu mã soạn sẵn liên quan đến việc thiết lập các thuộc tính cho một đối tượng. Với @Builder, bạn có thể thực hiện việc gán giá trị cho các thuộc tính trong một câu lệnh duy nhất mà không cần phải viết nhiều dòng mã.

Kết Luận

Bài viết đã hướng dẫn bạn cách sử dụng thư viện Lombok để cải thiện chất lượng mã nguồn trong dự án Java của bạn, giúp mã trở nên ngắn gọn và hiệu quả hơn. Việc ứng dụng Lombok không chỉ tiết kiệm thời gian mà còn tăng tính dễ đọc cho mã nguồn.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào