less than 1 minute read

메소드 레퍼런스



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());
}
 

Tags:

Categories:

Updated:

Leave a comment