مشخصات مقاله
-
627
-
0.0
-
2148
-
0
-
0
کلاس اختیاری در Java 8
کلاس اختیاری در Java 8
Optional یا اختیاری شیء نگهدارنده ای است که می توان اشیاء غیرتهی را در آن نگهداری کرد. جهت ارائه ی تهی و در صورت نبود مقدار از اشیاء اختیاری استفاده می شود. این کلاس جهت تسهیل کد نویسی و مدیریت مقادیر به صورت ‘available’ یا ‘not available’ به جای بررسی مقادیر تهی، متدهای کاربردی متعددی دارد. این کلاس در Java 8 معرفی شده است و شبیه به کلاس اختیاری Guava است.
اعلان کلاس در Java 8
اعلان کلاس java.util.Optional< T > را می توانید در زیر مشاهده کنید.
public final class Optional< T > extends Object
Method Class در Java 8
یک نمونه ی اختیاری تهی را برگشت می دهد.
بیانگر این است که شیئی برابر یا این کلاس اختیاری است یا خیر.
اگر مقداری وجود داشته باشد و این مقدار با گزاره ی معلومی مطابقت داشته باشد، در این صورت آپشنالی برگشت داده می شود که این مقدار را توصیف می کند. در غیر این صورت یک آپشنال تهی برگشت داده می شود.
اگر مقداری وجود داشته باشد، در این صورت تابع نگاشت حامل آپشنال موجود بر روی آن اعمال می شود و نتیجه برگشت داده می شود. در غیر این صورت یک Optional تهی برگشت داده می شود.
اگر مقداری در این آپشنال وجود داشته باشد، در این صورت این مقدار برگشت داده می شود و در غیر این صورت خطای NoSuchElementException رخ می دهد.
مقدار کد هش مقدار موجود را در صورت وجود برگشت می دهد. در صورتی که مقداری موجود نباشد، 0 را برگشت می دهد.
اگر مقداری موجود باشد، مصرف کننده ی مشخصی را به همراه مقدار آن برگشت می دهد، در غیر این صورت کاری انجام نمی دهد.
در صورتی که مقداری موجود باشد، true را برگشت می دهد، در غیر این صورت false را برگشت می دهد.
آپشنالی را به همراه مقدار غیرتهی حاضر و مشخص برگشت می دهد.
آپشنالی را برگشت می دهد که مقدار مشخص شده را توصیف می کند، به شرط آن که مقدار تهی نباشد. در غیر این صورت یک آپشنال تهی را برگشت می دهد.
در صورت وجود مقدار را برگشت می دهد و در غیر این صورت مقدار دیگر را برگشت می دهد.
در صورت وجود مقدار را برگشت می دهد و در غیر این صورت مقدار دیگر را احضار می کند و نتیجه ی این احضار را برگشت می دهد.
مقدار مشمول را در صورت وجود برگشت می دهد، در غیر این صورت خطای exception می دهد تا این مقدار توسط تأمین کننده ی موجود ایجاد شود.
نمایش رشته ای غیرتهی از این آپشنال که برای رفع اشکال مناسب است را برگشت می دهد.
این کلاس متدهای کلاس زیر را به ارث می برد:
- java.lang.Object
مثالی برای آپشنال در Java 8
برنامه ی زیر را با استفاده از یکی از ویرایشگرهای مورد نظر خود مثلا در C:\> JAVA ایجاد کنید.
Java8Tester.java
import java.util.Optional;
public class Java8Tester {
public static void main(String args[]) {
Java8Tester java8Tester = new Java8Tester();
Integer value1 = null;
Integer value2 = new Integer(10);
//Optional.ofNullable - allows passed parameter to be null.
Optional< Integer > a = Optional.ofNullable(value1);
//Optional.of - throws NullPointerException if passed parameter is null
Optional< Integer > b = Optional.of(value2);
System.out.println(java8Tester.sum(a,b));
}
public Integer sum(Optional< Integer > a, Optional< Integer > b) {
//Optional.isPresent - checks the value is present or not
System.out.println("First parameter is present: " + a.isPresent());
System.out.println("Second parameter is present: " + b.isPresent());
//Optional.orElse - returns the value if present otherwise returns
//the default value passed.
Integer value1 = a.orElse(new Integer(0));
//Optional.get - gets the value, value should be present
Integer value2 = b.get();
return value1 + value2;
}
}
نتیجه را بررسی کنید
با استفاده از کامپایلر javac مانند زیر این کلاس را کامپایل کنید.
C:\JAVA>javac Java8Tester.java
حالا مانند زیر Java8Tester را اجرا کنید.
C:\JAVA>java Java8Tester
نتیجه باید به صورت زیر نمایش داده شود.
First parameter is present: false Second parameter is present: true 10
برای مطالعه سرفصل آموزش جاوا (J2SE) کلیک نمایید .