+1 امتیاز
قبل در برنامه نویسی توسط (7.2هزار امتیاز)
عملگر :: یا double colon که در جاوا 8 افزوده شده است چه امکانات جدیدی در اختیار برنامه نویس قرار می دهد؟

1 پاسخ

+3 امتیاز
قبل توسط (1.1هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

:: یا double colon یک روش آسان برای استفاده از متد های موجود به سبک برنامه نویسی functional در جاوا 8 است، این عملگر reference یک متد را بر می گرداند.

کلاس Person را در نظر بگیرید:

public class Person {

     /////
 
    public Calendar getBirthday() {
        return birthday;
    }    

    public static int compareByAge(Person a, Person b) {
        return a.birthday.compareTo(b.birthday);
    }
}

کد زیر استفاده از Comparator در جاوا (نسخه قبل از 8) برای مقایسه آرایه Person را نمایش می دهد:

Person[] personArray = ...;

class PersonAgeComparator implements Comparator<Person> {
    public int compare(Person a, Person b) {
        return a.getBirthday().compareTo(b.getBirthday());
    }
}
        
Arrays.sort(personArray, new PersonAgeComparator());

کد زیر با استفاده از lambda expression در جاوا 8 بصورت زیر می شود:

Arrays.sort(personArray,
    (Person a, Person b) -> {
        return a.getBirthday().compareTo(b.getBirthday());
    }
);

با استفاده از method reference کد فوق می تواند بصورت زیر ساده تر شود:

Arrays.sort(personArray, Person::compareByAge);

سوالات مشابه

+2 امتیاز
1 پاسخ 424 بازدید
+1 امتیاز
1 پاسخ 504 بازدید
0 امتیاز
0 پاسخ 255 بازدید
0 امتیاز
1 پاسخ 436 بازدید
0 امتیاز
0 پاسخ 787 بازدید
0 امتیاز
0 پاسخ 568 بازدید
+1 امتیاز
1 پاسخ 482 بازدید
...