JAVA 8 – LAMBDA EXPRESSION (NO.2 – LAMBDA EXPRESSION VIA METHODS PARAMETERS)

Java 8 – Lambda Expression

Sekarang kita akan pakai teknik selanjutnya yaitu menggunakan Parameter dari suatu Method. Di postingan lalu, masih kenal dengan Lambda Expression ya? Ok sip.

Sekarang kita gunakan dalam anonymous class tuk penggunaannya:

 

public void shouldOrderTheListOfNamesByUsingAnonymousClass() throws Exception {
    List<string> hackingCodeGuides = Arrays.asList("Mockito", "CDI", "JUnit", "Hibernate", "Spring");
 
    Collections.sort(hackingCodeGuides, new Comparator<string>() {
 
        @Override
        public int compare(String firstGuide, String secondGuide) {
            return firstGuide.compareTo(secondGuide);
        }
    });
 
    assertThat(hackingCodeGuides, contains("CDI", "Hibernate", "JUnit", "Mockito", "Spring"));
}

 

dari sii kita cuma pakai ini saja:

 

firstGuide.compareTo(secondGuide);

 

Sekarang kita buang penggunaan nama method dan cukupkan dengan signature.

 

public void shouldOrderTheListOfNamesByLambdaExpression() throws Exception {
    List<string> hackingCodeGuides = Arrays.asList("Mockito", "CDI", "JUnit", "Hibernate", "Spring");
 
 
    Collections.sort(hackingCodeGuides, (String firstGuide, String secondGuide) -> {
        return firstGuide.compareTo(secondGuide);
    });
 
    assertThat(hackingCodeGuides, contains("CDI", "Hibernate", "JUnit", "Mockito", "Spring"));
}

 

Perhatikan perubahan tadi? Ada ini lho:

 

(String firstGuide, String secondGuide) -> {}

 

Tapi kalau mau lebih lagi dari penggunaan diatas, ya bisa saja. Kita buang kurung kurawalnya (delete braces) lalu return keywords juga.

 

public void shouldOrderTheListOfNamesByLambdaExpressionWithoutBracesAndReturnKeyword() throws Exception {
    List<string> hackingCodeGuides = Arrays.asList("Mockito", "CDI", "JUnit", "Hibernate", "Spring");
 
    Collections.sort(hackingCodeGuides, (String firstGuide, String secondGuide) -> firstGuide.compareTo(secondGuide));
 
    assertThat(hackingCodeGuides, contains("CDI", "Hibernate", "JUnit", "Mockito", "Spring"));
}

Nah karena sekarang sudah Java 8 dan ada Type Inference maka kita buang saja menjadi:

 

(String firstGuide, String secondGuide)

 

beres deh jadi final code begini:

 

public void shouldOrderTheListOfNamesByLambdaExpressionWithoutParameterTypes() throws Exception {

    List<string> hackingCodeGuides = Arrays.asList("Mockito", "CDI", "JUnit", "Hibernate", "Spring");
 
    Collections.sort(hackingCodeGuides, (firstGuide, secondGuide) -> firstGuide.compareTo(secondGuide));
 
    assertThat(hackingCodeGuides, contains("CDI", "Hibernate", "JUnit", "Mockito", "Spring"));
}

 

Sekian penggunaan Lambda dalam Java 8 tutorial. Sesi lainnya kita bahas di kelas atau pada artikel tutorial lainnya, salam java programming!

 

 

Related Articles