작업 상태
- List<> lists 의 내용의 값을 합하다가 나온 에러입니다.
Long totalCount = 0L;
for(Category cate: categorites){
String name = cate.getName();
Long count = 0L;
try{
count = countMap.get(name);
if(count == null ) count = 0L;
}catch(Exception e){ count = 0L;}
totalCount += count;
cate.setCount(count);
}
이런 형태를 함수형? 연산으로 변환하던중 나타났습니다.
int totalCount = topicList.stream().mapToInt(Topic::getCount.intValue()).sum();
에러 메시지
java.lang.Error: Unresolved compilation problem:
The target type of this expression must be a functional interface
원인
public class Topic {
@Transient Long count;
이게 Long 형이어서 int형변환해서 계산하려던 중 발생했는데.
java 문법자체를 아직 잘 이해 못하겠습니다.
처리
// int totalCount = topicList.stream().mapToInt(Topic::getCount.intValue()).sum();
int totalCount = topicList.stream().mapToInt(topic -> topic.getCount().intValue()).sum();
참고
자바람다식
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
IntStream intStream = list.stream().mapToInt(i -> i * i);