Lombok لجافا: دليل شامل مع أمثلة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو Lombok ولماذا هو مطلوب؟

\n\n

Lombok (Project Lombok) هي مكتبة للغة جافا تسمح بتقليل حجم الكود النمطي (boilerplate code) بشكل كبير. في جافا، غالبًا ما يكتب المطورون تركيبات متكررة: دوال الحصول (getters)، دوال التعيين (setters)، المنشئات (constructors)، وطرق toString() و equals() و hashCode(). يقوم Lombok تلقائيًا بتوليد هذا الكود في مرحلة التجميع باستخدام التعليقات التوضيحية (annotations).

\n\n

الهدف الرئيسي من Lombok هو جعل الكود أنظف وأقصر وأسهل في الصيانة. بدلاً من كتابة عشرات الأسطر من الكود المتكرر، يمكنك ببساطة إضافة تعليق توضيحي واحد، ويتم توليد كل شيء تلقائيًا. هذا مفيد بشكل خاص لفئات النماذج (POJO/DTO)، حيث يشكل الكود النمطي ما يصل إلى 70% من الحجم الإجمالي.

\n\n

Lombok ليس إطار عمل وقت التشغيل (runtime framework) - فهو يعمل حصريًا في مرحلة التجميع. يتم تضمين الكود المُولّد في البايت كود (byte-code)، لذلك لا توجد حاجة لأي تبعيات من Lombok في وقت التشغيل.

\n\n

تثبيت Lombok

\n\n

يتم إضافة Lombok كتبعية عادية في مشروعك. نظرًا لأنها مكتبة جافا، لا يتم استخدام التثبيت عبر pip أو npm. فيما يلي الطرق الرئيسية للتثبيت:

\n\n

Maven

\n

أضف إلى pom.xml:

\n
<dependency>\n    <groupId>org.projectlombok</groupId>\n    <artifactId>lombok</artifactId>\n    <version>1.18.30</version>\n    <scope>provided</scope>\n</dependency>
\n\n

Gradle

\n

أضف إلى build.gradle:

\n
dependencies {\n    compileOnly 'org.projectlombok:lombok:1.18.30'\n    annotationProcessor 'org.projectlombok:lombok:1.18.30'\n}
\n\n

IntelliJ IDEA

\n

في IntelliJ IDEA، يجب تثبيت إضافة Lombok (Settings → Plugins → Marketplace → Lombok) وتفعيل معالجة التعليقات التوضيحية (Settings → Build, Execution, Deployment → Compiler → Annotation Processors → Enable annotation processing).

\n\n

Eclipse

\n

قم بتنزيل ملف JAR الخاص بـ Lombok من الموقع الرسمي وقم بتشغيله بنقرة مزدوجة - سيفتح برنامج التثبيت الذي سيجد IDE الخاص بك تلقائيًا ويضبط الإعدادات اللازمة.

\n\n

بداية سريعة مع مثال كود

\n\n

لنلقِ نظرة على فئة جافا نموذجية قبل وبعد استخدام Lombok.

\n\n

بدون Lombok (الطريقة التقليدية):

\n
public class User {\n    private String name;\n    private int age;\n    private String email;\n\n    public User() {}\n\n    public User(String name, int age, String email) {\n        this.name = name;\n        this.age = age;\n        this.email = email;\n    }\n\n    public String getName() { return name; }\n    public void setName(String name) { this.name = name; }\n    public int getAge() { return age; }\n    public void setAge(int age) { this.age = age; }\n    public String getEmail() { return email; }\n    public void setEmail(String email) { this.email = email; }\n\n    @Override\n    public String toString() {\n        return "User{name='" + name + "', age=" + age + ", email='" + email + "'}";\n    }\n\n    @Override\n    public boolean equals(Object o) {\n        if (this == o) return true;\n        if (o == null || getClass() != o.getClass()) return false;\n        User user = (User) o;\n        return age == user.age && Objects.equals(name, user.name) && Objects.equals(email, user.email);\n    }\n\n    @Override\n    public int hashCode() {\n        return Objects.hash(name, age, email);\n    }\n}
\n\n

مع Lombok:

\n
import lombok.*;\n\n@Data\n@NoArgsConstructor\n@AllArgsConstructor\npublic class User {\n    private String name;\n    private int age;\n    private String email;\n}
\n\n

فقط 5 أسطر بدلاً من 50! أصبح الكود موجزًا وقابلاً للقراءة وسهل الصيانة.

\n\n

التعليقات التوضيحية والطرق الرئيسية في Lombok

\n\n

فيما يلي التعليقات التوضيحية الرئيسية في Lombok. كل منها يولد مجموعة معينة من

توصيات