✔ ClassName::staticMethodName
클래스의 static method를 지정할 때
(Method명 만)
integer → String
String.valueOf();
String → integer
Integer.parseInt();
Function <String, Integer> str2int = Integer::parseInt;
int five = str2int.apply("5");
✔ ObjectName::instanceMethodName
이미 선언되어있는 객체의 instance method를 지정할 때
String str = "hello";
Predicate<String> equalsToHello = str::equals;
boolean helloEquealsWorld = equalsToHello.test("world");
✔ ClassName::instanceMethodName
객체의 instance method를 지정할 때
(해당 클래스의 인스턴스를 매개변수(parameter)로 넘겨 메서드를 실행해주는 함수)
Function <String, Integer> strLength = String::length;
int length = strLength.apply("Hello world");
BiPredicate<String, String> strEquals = String::equals;
boolean result = strEquals.test("hello" , "world");
✔ ClassName::new
클래스의 constructor를 지정할 때
(Constructor Reference)
import Car;
public abstract class Car { //추상화
protected String name; //extends and get used...
protected String brand;
public Car(String name, String brand) { //construct with two fields and asign
this.name = name;
this.brand = brand;
}
public abstract void drive(); //method name is drive
}
import Sedan;
public class Sedan extends Car { //Car 상속
public Sedan(String name, String brand) {
super(name, brand);
}
public void drive() {
System.out.println("Driving a sedan " + name + " from " +brand);
}
}
import Suv;
public class Suv extends Car {
public Suv(String name, String brand) {
super(name, brand);
}
public void drive() {
System.out.println("Driving an SUV " + name + " from " +brand);
}
}
import Van;
public class Van extends Car {
public Van(String name, String brand) {
super(name, brand);
}
public void drive() {
System.out.println("Driving a van " + name + " from " +brand);
}
}
public static void main(String[] args) {
//3) make Map
Map <String, BiFunction<String, String, Car>> carTypeToConstructorMap = new HashMap <>();
carTypeToConstructorMap.put("sedan", Sedan::new);
carTypeToConstructorMap.put("suv", Suv::new);
carTypeToConstructorMap.put("van", Van::new);
❗ 해당 내용은 Fastcampus의
25개 백엔드 개발 필수 현업 예제를 통해 마스터하는 JAVA STREAM 강의를 들은 후 정리한 내용입니다.
댓글 영역