tgoop.com/javapro_ir/4432
Create:
Last Update:
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