이 문제를 어떻게 해결합니까?
오류
Stream의 map (Function)은 (lambda expression>, lambda expression>)에 적용 할 수 없습니다.
static class C {
int id;
public int getId() {
return id;
}
}
Map<Integer, C> c = Arrays.asList(new C()).stream().collect(Collectors.toMap(c -> c.getId(), c -> c));
이 시도
Map<Integer, C> map = Arrays.asList(new C())
.stream()
.collect(Collectors.toMap(C::getId, c -> c));
귀하의 예제에서 맵이하는 일은 스트림의 객체를 한 가지에서 다른 것으로 변경하는 것입니다. 예를 들어 C
객체 map(c -> c.getId())
스트림이 있고이를 Integers
. 당신이 찾고 collect
있던 것은 스트림을 종료하고 당신이 얻고 자하는 어떤 객체로든 그것을 "수집"할 수 있도록하는 기능입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다