2015-06-07 3 views
10

निम्नलिखित कोड नमूना क्या :: करता है में कार्य करें::: जावा ऑपरेटर इस संदर्भ में क्या करता है?

public static void main(String[] args) { 

    List<Integer> l = Arrays.asList(1,2,3,4,5,6,7,8,9,10);  

    Integer s = l.stream().filter(Tests::isGT1) 
         .filter(Tests::isEven) 
         .map(Tests::doubleIt) 
         .findFirst() 
         .orElse(100);   
    System.out.println(s);  
} 


private static boolean isGT3(int number){ 
    return number > 3; 
} 

private static boolean isEven(int number){ 
    return number % 2 ==0; 
}  
private static int doubleIt(int number){ 
    return number * 2; 
} 

उत्तर

24

ये method references हैं।

.map(Tests::doubleIt) 

बराबर है

.map(i -> Tests.doubleIt(i)) 

तुम भी someObject::someMethod का उपयोग कर उदाहरण तरीकों का उल्लेख कर सकते हैं, या यहां तक ​​कि निर्माताओं को SomeClass::new का उपयोग कर रहे हैं: यह एक lambda expression लिखने के लिए सिर्फ एक सरल तरीका है।

+1

ओह। हाँ। अब फिक्स्ड, धन्यवाद। –

संबंधित मुद्दे