예:
new Thread(new Runnable() {
@Override
public void run() {
// run thread
}
});
빠른 수정을 적용한 후:
new Thread(() -> {
// run thread
});
익명 클래스가 무상태 람다로 변환되는 경우,
후속 호출 중 Java 런타임에서 동일 람다 객체를 다시 사용할 수 있습니다. 반면 익명 클래스를 사용하면
매번 별도의 객체가 생성됩니다. 따라서 빠른 수정 적용 시 드물게 의미가 변경될 수 있습니다.
예: 익명 클래스 인스턴스가 HashMap 키로 사용되는 경우.
인터페이스에 @FunctionalInterface로 어노테이션이 추가되지 않은 경우 보고 옵션을 사용하여 익명 클래스가 @FunctionalInterface 어노테이션이 없는 인터페이스를 구현한 경우를 무시합니다.