دليل Guava الشامل لجافا: أمثلة وأساليب عملية

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

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

ابدأ الدورة

ما هي Guava ولماذا تحتاجها؟

Guava هي مكتبة قوية مفتوحة المصدر من Google، تقدم مجموعة من الأدوات عالية الجودة للغة Java. صُممت لجعل كود Java أكثر إيجازًا وموثوقية وكفاءة، من خلال حل العديد من المهام الشائعة التي يواجهها المطورون.

لماذا تحتاج Guava؟ توفر مكتبة Java القياسية (JDK) وظائف أساسية، لكنها غالبًا ما تكون غير كافية من حيث الراحة والأمان. تسد Guava هذه الفجوات من خلال تقديم:

  • تبسيط العمل مع المجموعات (Collections): إنشاء مجموعات غير قابلة للتعديل، التصفية، التحويل، التجميع — كل ذلك يصبح أسهل بكثير.
  • التخزين المؤقت (Caching): إطار عمل قوي ومرن لتخزين البيانات مؤقتًا في الذاكرة.
  • معالجة الأنواع البدائية (Primitives): أدوات للتعامل مع مصفوفات الأنواع البدائية (int, long, double، إلخ).
  • عمليات السلاسل النصية: فئات مريحة للتعامل مع النصوص مثل Joiner و Splitter.
  • العمل مع الدوال والمسندات (Functions & Predicates): أسلوب برمجة وظيفي (وإن لم يكن بنفس إيجاز Java 8+، إلا أنه لا يزال مفيدًا).
  • التحقق من الشروط المسبقة (Preconditions): بديل أنيق للتحقق اليدوي من القيم الفارغة والشروط الأخرى.
  • التجزئة (Hashing): أدوات لإنشاء دوال تجزئة.
  • الخيوط والتزامن (Threads & Concurrency): أدوات للتعامل مع تعدد الخيوط، بما في ذلك ListenableFuture.

إذا كنت تكتب بلغة Java وترغب في تحسين جودة وسرعة التطوير، فإن Guava هي مكتبة لا غنى عنها.

تثبيت Guava

لا يتم تثبيت Guava عبر pip أو npm، لأنها مكتبة Java. يتم توزيعها عبر أنظمة إدارة التبعيات مثل Maven أو Gradle.

التثبيت عبر Maven (pom.xml)

أضف الكود التالي داخل قسم <dependencies> في ملف pom.xml الخاص بك:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>33.2.0-jre</version> <!-- استخدم أحدث إصدار -->
</dependency>

التثبيت عبر Gradle (build.gradle)

أضف إلى قسم dependencies:

implementation 'com.google.guava:guava:33.2.0-jre'

التثبيت اليدوي (تنزيل JAR)

يمكنك أيضًا تنزيل ملف JAR من إصدارات Guava على GitHub وإضافته إلى classpath لمشروعك.

هام: الإصدار 33.2.0-jre مخصص لـ Java 8 والإصدارات الأحدث. للإصدارات الأقدم من Java، استخدم الإصدار android (مثل 33.2.0-android).

بداية سريعة مع مثال برمجي

لنكتب برنامجًا بسيطًا يوضح بعض الإمكانيات الرئيسية لـ Guava.

import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;

import java.util.List;

public class GuavaQuickStart {
    public static void main(String[] args) {
        // 1. إنشاء قائمة غير قابلة للتعديل
        ImmutableList<String> names = ImmutableList.of("أحمد", "سارة", "خالد");
        System.out.println("الأسماء: " + names); // [أحمد, سارة, خالد]

        // 2. دمج السلاسل باستخدام Joiner
        String joined = Joiner.on("، ").join(names);
        System.out.println("الأسماء المدمجة: " + joined); // أحمد، سارة، خالد

        // 3. تقسيم سلسلة باستخدام Splitter
        String csv = "تفاح,موز,,عنب";
        Iterable<String> fruits = Splitter.on("،")
                .trimResults()
                .omitEmptyStrings()
                .split(csv)                    

توصيات