JAVAPRO_IR Telegram 4426
✍️ آشنایی با Lombok @Data در جاوا

در برنامه‌نویسی جاوا معمولاً وقتی یک کلاس مدل (Model/Entity) می‌نویسیم، نیاز به نوشتن مقدار زیادی کد تکراری داریم مثل:

متدهای getter و setter

متد toString()

متدهای equals() و hashCode()


این کار هم وقت‌گیر است و هم باعث شلوغ شدن کلاس می‌شود.

🔹 کتابخانه Lombok یک کتابخانه کاربردی است که با استفاده از Annotations کدهای تکراری را به صورت خودکار تولید می‌کند.

📌 نقش @Data

وقتی روی یک کلاس از @Data استفاده می‌کنیم، Lombok به طور خودکار موارد زیر را برای ما تولید می‌کند:

1. همه‌ی getter و setter ها برای فیلدها


2. متد toString()


3. متد equals() و hashCode()


4. یک constructor برای فیلدهای final

مثال ساده
import lombok.Data;

@Data
public class User {
    private String name;
    private int age;
}

🔹 معادل کدی که Lombok در پشت صحنه تولید می‌کند (بدون اینکه شما بنویسید):
public class User {
    private String name;
    private int age;

    // Getters & Setters
    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) { /* کد تولیدشده */ }
    @Override
    public int hashCode() { /* کد تولیدشده */ }
}

🎯 استفاده در عمل
public class Main {
    public static void main(String[] args) {
        User u1 = new User();
        u1.setName("Saleh");
        u1.setAge(23);

        System.out.println(u1);
        // خروجی: User(name=Saleh, age=23)

        User u2 = new User();
        u2.setName("Saleh");
        u2.setAge(23);

        System.out.println(u1.equals(u2));
        // true چون Lombok خودش equals و hashCode را نوشته
    }
}

⚠️ نکته مهم

برای اینکه Lombok کار کند باید:

1. کتابخانه Lombok را به پروژه اضافه کنید.

در Maven:
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.30</version>
  <scope>provided</scope>
</dependency>

در Gradle:
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'

2. پلاگین Lombok را در IDE (مثل IntelliJ یا Eclipse) فعال کنید.

نتیجه: با @Data شما می‌توانید کلاس‌های تمیزتر، خواناتر و کوتاه‌تر بنویسید بدون نیاز به نوشتن کدهای تکراری.

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


🆔 @javapro_ir
🆔 @group_javapro
👍54💯2



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

✍️ آشنایی با Lombok @Data در جاوا

در برنامه‌نویسی جاوا معمولاً وقتی یک کلاس مدل (Model/Entity) می‌نویسیم، نیاز به نوشتن مقدار زیادی کد تکراری داریم مثل:

متدهای getter و setter

متد toString()

متدهای equals() و hashCode()


این کار هم وقت‌گیر است و هم باعث شلوغ شدن کلاس می‌شود.

🔹 کتابخانه Lombok یک کتابخانه کاربردی است که با استفاده از Annotations کدهای تکراری را به صورت خودکار تولید می‌کند.

📌 نقش @Data

وقتی روی یک کلاس از @Data استفاده می‌کنیم، Lombok به طور خودکار موارد زیر را برای ما تولید می‌کند:

1. همه‌ی getter و setter ها برای فیلدها


2. متد toString()


3. متد equals() و hashCode()


4. یک constructor برای فیلدهای final

مثال ساده

import lombok.Data;

@Data
public class User {
    private String name;
    private int age;
}

🔹 معادل کدی که Lombok در پشت صحنه تولید می‌کند (بدون اینکه شما بنویسید):
public class User {
    private String name;
    private int age;

    // Getters & Setters
    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) { /* کد تولیدشده */ }
    @Override
    public int hashCode() { /* کد تولیدشده */ }
}

🎯 استفاده در عمل
public class Main {
    public static void main(String[] args) {
        User u1 = new User();
        u1.setName("Saleh");
        u1.setAge(23);

        System.out.println(u1);
        // خروجی: User(name=Saleh, age=23)

        User u2 = new User();
        u2.setName("Saleh");
        u2.setAge(23);

        System.out.println(u1.equals(u2));
        // true چون Lombok خودش equals و hashCode را نوشته
    }
}

⚠️ نکته مهم

برای اینکه Lombok کار کند باید:

1. کتابخانه Lombok را به پروژه اضافه کنید.

در Maven:
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.30</version>
  <scope>provided</scope>
</dependency>

در Gradle:
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'

2. پلاگین Lombok را در IDE (مثل IntelliJ یا Eclipse) فعال کنید.

نتیجه: با @Data شما می‌توانید کلاس‌های تمیزتر، خواناتر و کوتاه‌تر بنویسید بدون نیاز به نوشتن کدهای تکراری.

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


🆔 @javapro_ir
🆔 @group_javapro

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


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

View MORE
Open in Telegram


Telegram News

Date: |

As five out of seven counts were serious, Hui sentenced Ng to six years and six months in jail. Each account can create up to 10 public channels There have been several contributions to the group with members posting voice notes of screaming, yelling, groaning, and wailing in different rhythms and pitches. Calling out the “degenerate” community or the crypto obsessives that engage in high-risk trading, Co-founder of NFT renting protocol Rentable World emiliano.eth shared this group on his Twitter. He wrote: “hey degen, are you stressed? Just let it out all out. Voice only tg channel for screaming”. A Telegram channel is used for various purposes, from sharing helpful content to implementing a business strategy. In addition, you can use your channel to build and improve your company image, boost your sales, make profits, enhance customer loyalty, and more. Healing through screaming therapy
from us


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