저는 지난 몇 달 동안 자바를 배우면서 막 함수에 들어가기 시작했습니다. 나는 최근에 IDE를 바꾸었고 이와 같은 코드에서 "메서드 참조로 바꿀 수있다"는 경고를 보았습니다. 리스트 for 메소드 참조 설명
List<Integer> intList = new ArrayList<>();
intList.add(1);
intList.add(2);
intList.add(3);
intList.forEach(num -> doSomething(num));
voiddoSomething(int num) {
System.out.println("Number is: " + num);
}
는 일부 파고 후, 나는 대신에 라인
intList.forEach(num -> doSomething(num));
의 난 그냥
intList.forEach(this::doSomething);
사용할 수있는이 단지 놀라운 것을 깨달았다. 며칠 전 나는 람다 (lambdas)에 대해서 알지 못했고 이와 같은 작업을하기 위해 루프를 사용하고있었습니다. 이제는 for 루프를 lambda로 바꿨으며 더 나은 방법으로 람다를 메소드 참조로 바꿀 수 있습니다. 문제는이 모든 것이 어떻게 내부적으로 작용하는지 실제로 이해할 수 없다는 것입니다. 누구든지 doSomething 함수가 호출되고 메소드 참조를 사용할 때 인수가 전달되는 방법을 설명하는 좋은 리소스를 설명하거나 제공 할 수 있습니까?
https://stackoverflow.com/questions/25784337/lambda-with-non-static-methods- in-java-8) – Joe
읽기 자습서 : [https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html] (https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html) –