JAVAPRO_IR Telegram 4432
🎓 آموزش Lombok Annotations در جاوا

کتابخانه Lombok با استفاده از انوتیشن‌ها (Annotations) به ما کمک می‌کنه تا از نوشتن کدهای تکراری (boilerplate code) مثل getter/setter, equals, hashCode, toString و constructor جلوگیری کنیم.

بیاید پرکاربردترین و معروف‌ترین انوتیشن‌ها رو بررسی کنیم:

🔹 ۱. @Getter و @Setter

به‌طور خودکار متدهای getter و setter رو برای فیلدها تولید می‌کنه.
import lombok.Getter;
import lombok.Setter;

public class User {
    @Getter @Setter
    private String name;

    @Getter
    private int age; // فقط getter ساخته میشه
}

🔹 ۲. @ToString

به‌طور خودکار متد toString() تولید می‌کنه.
import lombok.ToString;

@ToString
public class Book {
    private String title;
    private String author;
}

خروجی:
Book(title=Effective Java, author=Joshua Bloch)

🔹 ۳. @EqualsAndHashCode

به‌طور خودکار equals() و hashCode() رو می‌سازه.
import lombok.EqualsAndHashCode;

@EqualsAndHashCode
public class Student {
    private int id;
    private String name;
}

🔹 ۴. @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor

برای تولید سازنده‌ها (constructors):
import lombok.*;

@AllArgsConstructor
@NoArgsConstructor
@RequiredArgsConstructor
public class Employee {
    @NonNull
    private String name;
    private int salary;
}

🔹 ۵. @Data

ترکیبی از اکثر انوتیشن‌های پرکاربرد:
@Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor
import lombok.Data;

@Data
public class Car {
    private String model;
    private int year;
}

🔹 ۶. @Value (Immutable Objects)

کلاسی immutable می‌سازه (مثل final class):

همه فیلدها private final هستن

فقط getter تولید میشه

setter وجود نداره

import lombok.Value;

@Value
public class Address {
    String city;
    String country;
}

🔹 ۷. @Builder (Pattern Builder)

به‌جای constructor طولانی، از builder pattern استفاده می‌کنیم:
import lombok.Builder;

@Builder
public class Laptop {
    private String brand;
    private int ram;
    private double price;
}

// استفاده:
Laptop laptop = Laptop.builder()
        .brand("Dell")
        .ram(16)
        .price(1500)
        .build();

🔹 ۸. @SuperBuilder (برای ارث‌بری)

نسخه پیشرفته‌ی @Builder برای کلاس‌هایی که ارث‌بری دارن.
import lombok.experimental.SuperBuilder;

@SuperBuilder
class Animal {
    private String name;
}

@SuperBuilder
class Dog extends Animal {
    private String breed;
}

// استفاده:
Dog dog = Dog.builder()
        .name("Max")
        .breed("German Shepherd")
        .build();

🔹 ۹. @With (ایجاد نسخه جدید با تغییر یک فیلد)

برای immutable object ها عالیه:
import lombok.With;

public class Person {
    @With private final String name;
    @With private final int age;
}

// استفاده:
Person p1 = new Person("Ali", 25);
Person p2 = p1.withAge(30); // نسخه جدید با age متفاوت

🔹 ۱۰. @SneakyThrows

اجازه میده بدون try-catch یا throws، exception پرتاب کنیم.
import lombok.SneakyThrows;

public class FileService {
    @SneakyThrows
    public void readFile(String path) {
        throw new Exception("Error reading file!");
    }
}

🔹 ۱۱. @Log (و انواعش)

برای ایجاد logger بدون نیاز به تعریف دستی.
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class MyService {
    public void doSomething() {
        log.info("Service started...");
    }
}

جمع‌بندی

برای کلاس‌های ساده: از @Data استفاده کن.

برای immutable objects: از @Value یا @With استفاده کن.

برای ساخت آبجکت‌های پیچیده: از @Builder یا @SuperBuilder.

برای log: از @Slf4j.

برای exception handling راحت: از @SneakyThrows.

📌 اینطوری می‌تونید با Lombok کلی کد اضافی رو حذف کنید و تمرکزتون فقط روی منطق برنامه باشه. 🚀

#کاربرـحرفهـای


🆔 @javapro_ir
🆔 @group_javapro
👍65



tgoop.com/javapro_ir/4432
Create:
Last Update:

🎓 آموزش Lombok Annotations در جاوا

کتابخانه Lombok با استفاده از انوتیشن‌ها (Annotations) به ما کمک می‌کنه تا از نوشتن کدهای تکراری (boilerplate code) مثل getter/setter, equals, hashCode, toString و constructor جلوگیری کنیم.

بیاید پرکاربردترین و معروف‌ترین انوتیشن‌ها رو بررسی کنیم:

🔹 ۱. @Getter و @Setter

به‌طور خودکار متدهای getter و setter رو برای فیلدها تولید می‌کنه.

import lombok.Getter;
import lombok.Setter;

public class User {
    @Getter @Setter
    private String name;

    @Getter
    private int age; // فقط getter ساخته میشه
}

🔹 ۲. @ToString

به‌طور خودکار متد toString() تولید می‌کنه.
import lombok.ToString;

@ToString
public class Book {
    private String title;
    private String author;
}

خروجی:
Book(title=Effective Java, author=Joshua Bloch)

🔹 ۳. @EqualsAndHashCode

به‌طور خودکار equals() و hashCode() رو می‌سازه.
import lombok.EqualsAndHashCode;

@EqualsAndHashCode
public class Student {
    private int id;
    private String name;
}

🔹 ۴. @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor

برای تولید سازنده‌ها (constructors):
import lombok.*;

@AllArgsConstructor
@NoArgsConstructor
@RequiredArgsConstructor
public class Employee {
    @NonNull
    private String name;
    private int salary;
}

🔹 ۵. @Data

ترکیبی از اکثر انوتیشن‌های پرکاربرد:
@Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor
import lombok.Data;

@Data
public class Car {
    private String model;
    private int year;
}

🔹 ۶. @Value (Immutable Objects)

کلاسی immutable می‌سازه (مثل final class):

همه فیلدها private final هستن

فقط getter تولید میشه

setter وجود نداره

import lombok.Value;

@Value
public class Address {
    String city;
    String country;
}

🔹 ۷. @Builder (Pattern Builder)

به‌جای constructor طولانی، از builder pattern استفاده می‌کنیم:
import lombok.Builder;

@Builder
public class Laptop {
    private String brand;
    private int ram;
    private double price;
}

// استفاده:
Laptop laptop = Laptop.builder()
        .brand("Dell")
        .ram(16)
        .price(1500)
        .build();

🔹 ۸. @SuperBuilder (برای ارث‌بری)

نسخه پیشرفته‌ی @Builder برای کلاس‌هایی که ارث‌بری دارن.
import lombok.experimental.SuperBuilder;

@SuperBuilder
class Animal {
    private String name;
}

@SuperBuilder
class Dog extends Animal {
    private String breed;
}

// استفاده:
Dog dog = Dog.builder()
        .name("Max")
        .breed("German Shepherd")
        .build();

🔹 ۹. @With (ایجاد نسخه جدید با تغییر یک فیلد)

برای immutable object ها عالیه:
import lombok.With;

public class Person {
    @With private final String name;
    @With private final int age;
}

// استفاده:
Person p1 = new Person("Ali", 25);
Person p2 = p1.withAge(30); // نسخه جدید با age متفاوت

🔹 ۱۰. @SneakyThrows

اجازه میده بدون try-catch یا throws، exception پرتاب کنیم.
import lombok.SneakyThrows;

public class FileService {
    @SneakyThrows
    public void readFile(String path) {
        throw new Exception("Error reading file!");
    }
}

🔹 ۱۱. @Log (و انواعش)

برای ایجاد logger بدون نیاز به تعریف دستی.
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class MyService {
    public void doSomething() {
        log.info("Service started...");
    }
}

جمع‌بندی

برای کلاس‌های ساده: از @Data استفاده کن.

برای immutable objects: از @Value یا @With استفاده کن.

برای ساخت آبجکت‌های پیچیده: از @Builder یا @SuperBuilder.

برای log: از @Slf4j.

برای exception handling راحت: از @SneakyThrows.

📌 اینطوری می‌تونید با Lombok کلی کد اضافی رو حذف کنید و تمرکزتون فقط روی منطق برنامه باشه. 🚀

#کاربرـحرفهـای


🆔 @javapro_ir
🆔 @group_javapro

BY برنامه نویسی جاوا | Java


Share with your friend now:
tgoop.com/javapro_ir/4432

View MORE
Open in Telegram


Telegram News

Date: |

Healing through screaming therapy Clear SUCK Channel Telegram fire bomb molotov November 18 Dylan Hollingsworth yau ma tei Hashtags are a fast way to find the correct information on social media. To put your content out there, be sure to add hashtags to each post. We have two intelligent tips to give you:
from us


Telegram برنامه نویسی جاوا | Java
FROM American