작성
·
200
0
List<String> collect2 = names.stream().filter(String::startsWith("k")).map(String::toUpperCase)
위 코드에서 .filter(String::startsWith("k")) 해당 부분이 에러가 나는데요, 왜 메소드 레퍼런스 방식이 에러가 나는것인지 모르겠습니다 .
.filter(s -> s.startsWith("k")) 는 에러나지 않음. .
toUppercase 도 static 메소드가 아닌데 에러나지 않고 startsWith 은 에러가 나는것일까요..?
제가 무엇을 제대로 모르고 있는것일까요..?
답변 1
0
첫번째 메서드 레퍼런스는 "static 메서드 레퍼런스"로 인식하고 두번째꺼는 "임의 객체에 대한 메서드 레퍼런스"로 인식해서 그렇습니다. 이 중에서 "임의 객체에 대한 레퍼런스"가 사실 조금 복잡한데 그 부분에 대해서 조금 더 집중적으로 학습을 해보시기 바랍니다.