자바
메소드 레퍼런스
public class App{
public static void main(String[] args){
list.forEach(System.out::println);
}
}
메소드 레퍼런스란?
람다식을 더 간편하게 ::를 사용해서 표현하는 방법.
Static 메소드 레퍼런스
interface Liquor{
void Drink(String glass);
}
public static class Soju{
static void drinkSomething(String glass){
System.out.println(glass);
}
}
public static void main(String args[]){
Liquor man1 = glass -> Soju.drinkSomething(glass);
Liquor man2 = Soju::drinkSomething;
man1.drinkSomething("drink soju!");
man2.drinkSomething("pour the soju!");
}
Instance 메소드 레퍼런스
public static class Bootcamp{
String villain;
public Bootcamp(String character){
this.villain = character;
}
public void showVillain(){
System.out.println(villain);
}
}
public static void main(String[] args){
List<Heroes> Academy = Arrays.asList(new Heroes("Batman"),
new Heroes("Superman"), new Heroes("Catman")
);
Academy.stream().forEach(Academy::showVillain());
}
Constructor 메소드 레퍼런스
public static class Bootcamp{
String villain;
public Bootcamp(String character){
this.villain= character;
}
public void showVillain(){
System.out.println(villain);
}
}
public static void main(String[] args){
List<String> Heros = Arrays.asList("Batman","Superman","Catman")
Heros.stream()
.map(character -> new Bootcamp(character))
.forEach(bootcamp::showVillain());
}
Leave a comment