본문 바로가기

IT/Java64

생성자의 메서드 참조 생성자를 호출하는 람다식도 메서드 참조로 변환 가능 Supplier s = () -> new MyClass();//람다식 Supplier s = MyClass::new; //메서드참조 매개변수가 있는 생성자의 경우 매개변수의 개수에 따라 알맞은 함수형 인터페이스를 해용해야한다. 필요한 경우 함수형 인터페이스를 새로 정의해야 한다. Function f = x -> new int[x]; //람다식 Function f2 = int[]::new; // 메서드 참조 2019. 7. 18.
Lambda expression 람다식 : 메서드를 하나의 식으로 표현, 코드가 간결해지지만 성능의 저하가 생긴다. int[] arr = new int[5]; Arrays.setAll(arr, (i) -> (int)(Math.random()*5)+1); //int method(){ //return (int)(Math.random()*5)+1; // } 람다식 작성 반환타입 메서드이름(매개변수 선언) { 문장들 } (매개변수 선언) ->{ 문장들 } 2019. 7. 18.
지네릭 타입 형변환 Box box = null; Box objBox = null; box = (Box)objBox; //OK, 지네릭타입 -> 원시타입 (경고) objBox = (Box)box; //OK, 원시타입 -> 지네릭 타입(경고) 지네릭 타입과 넌 지네릭 타입간 형변환은 항상 가능하지만 경고가 발생한다. 대입된 타입이 다른 지네릭 타입 간에는 Object일지라도 형변환이 불가능하다. Box 2019. 7. 17.
지네릭 메서드 지네릭 메서드 : 메서드의 선언부에 지네릭 타입이 선언된 메서드 static Juice makeJuice(FruitBox box){ String tmp =""; for(Fruit f : box.getList()) tmp += f+" "; return new Juice(tmp); } 이와 같이 타입 변수에 타입을 대입해야 하나 대부분의 경우 컴파일러가 타입을 추정할 수 있기 때문에 생략해도된다. 2019. 7. 17.