English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمية Java الأساسية

Java التحكم في العملية

Java Arrays

Java موجه إلى الأشياء (I)

Java موجه إلى الأشياء (II)

Java موجه إلى الأشياء (III)

معالجة استثناءات Java

Java قائمة (List)

Java Queue (الصف)

Java Map المجموعات

Java Set المجموعات

Java إدخال/إخراج (I/O)

Java Reader/Writer

مواضيع أخرى في Java

تحسين try-with-resources في Java 9

ميزات Java 9 الجديدة

try-with-resources هي ميكانيكية جديدة لمعالجة الاستثناءات في JDK 7، وتتيح إغلاق المصادر المستخدمة في جملة try-catch بسهولة. ما يعنيه المصدر (resource) هو الأشياء التي يجب إغلاقها بعد اكتمال البرنامج. تأكد جملة try-with-resources من إغلاق كل مصدر عند انتهاء الجملة. يمكن استخدام أي شيء implements interface java.lang.AutoCloseable (والذي يشمل كل شيء implements java.io.Closeable) كمصدر.

تم تحسين تعريف try-with-resources في JDK 9. إذا كان لديك مصدر final أو مساوي له، يمكنك استخدامه في جملة try-with-resources دون الحاجة إلى إعلان متغير جديد في جملة try-with-resources.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
 
public class Tester {
   public static void main(String[] args) throws IOException {
      System.out.println(readData("test"));}}
   } 
   static String readData(String message) throws IOException {
      Reader inputString = new StringReader(message);
      BufferedReader br = new BufferedReader(inputString);
      try (BufferedReader br1 = br) {
         return br1.readLine();
      }
   }
}

نتيجة الإخراج هي:

test

في المثال السابق، يجب علينا إعلان المصدر br1 داخل جملة try، ثم يمكننا استخدامه.

في Java 9، لا نحتاج إلى إعلان المصدر br1 لاستخدامه، ونحصل على نفس النتيجة.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
 
public class Tester {
   public static void main(String[] args) throws IOException {
      System.out.println(readData("test"));}}
   } 
   static String readData(String message) throws IOException {
      Reader inputString = new StringReader(message);
      BufferedReader br = new BufferedReader(inputString);
      try (br) {
         return br.readLine();
      }
   }
}

النتيجة الصادرة للتنفيذ هي:

test

عند التعامل مع الموارد التي يجب إغلاقها، استخدم جملة try-with-resources بدلاً من جملة try-finally. الكود الناتج أكثر براعة، وأكثر وضوحاً، وأكثر استفادة في حالات الاستثناء. يصبح كتابة الكود الذي يجب إغلاق فيه الموارد أسهل وأقل عرضة للخطأ باستخدام جملة try-with-resources، بينما يكون استخدام جملة try-finally غير ممكن في الواقع.

ميزات Java 9 الجديدة