람다를 사용할 때 아래와 같은 에러 문구를 보면서 궁금했던 점을 찾아보고 정리해보았다Variable used in lambda expression should be final or effectively final 처음에는 단순하게 람다가 병렬로 처리되나? 라고 생각했는데 아니었다 ㅎㅎ그래서 조사해본 결과 (effectively) final 이라는 제약이 왜 필요한지 언제 필요한지를 알게 되었다. 일단 effectively final이 무엇인지 정리해보면,말 그대로 final 키워드는 없지만 초기화 된 이후 값이 한번도 변경되지 않았다면 effectively final이라고 한다 조사해보기 전에는 람다에서 외부 변수를 사용하려면 무조건 (effectively) final 변수이어야 하는 줄 알았는데 아..
Optional에 관한 블로그 글을 보게 됐는데 내용이 좋아서 따로 블로그에 정리하려고 한다. 원본 글은 아래 reference에 있다. Optional 이란? NPE(NUllPointerException)를 피하기 위해서는 null 여부를 검사해야 하는데, null 검사를 해야하는 변수가 많은 경우 코드가 복잡해지고 번거롭다. 그래서 Java에는 null이 올 수 있는 값을 감싸는 Wrapper 클래스인 Optional을 사용하면 참조하더라도 NPE가 발생하지 않게 할 수 있다. 메소드 Optional.empty() 값이 없는 경우에, Optional을 생성하고 싶을 때 사용할 수 있다 아래 코드를 보면 Optional.empty()를 해도 static 변수인 EMPTY를 리턴한다. 따라서 여러번 호출..
- Total
- Today
- Yesterday