public static final Function<String, Set<String>> MAPPING_FUNCTION = new Function<String, Set<String>>() {
@Override
public Set<String> apply(String s) {
return new HashSet<>();
}
};
이것은 익명 내부 클래스를 작성하는 방법입니다. 실제로 이러한 작성 방법은 새 클래스를 작성한 다음 인터페이스를 구현하는 것과 같습니다. 문제는 단지 인터페이스의 메소드를 구현하기 위해 새 클래스를 생성하는 것이 너무 까다로워서 대부분의 작성 메소드가 익명의 내부 클래스를 직접 작성한다는 것입니다.
우리는 클래스 이름에 신경을 쓰지 않기 때문에 구체적인 구현에만 주의를 기울입니다. 이는 익명 내부 클래스의 일반적인 사용 시나리오이기도 합니다.
이것은 인터페이스의 인스턴스가 아니라 인터페이스를 구현하는 익명 내부 클래스의 인스턴스입니다.
뒤에 교정장치가 있는 걸 못 보셨나요? 우리가 흔히 사용하는
A a=new A()
형태와는 확실히 다릅니다.내부 수업 관련 지식을 읽어보시길 권장합니다.
이것은 익명 내부 클래스를 작성하는 방법입니다. 실제로 이러한 작성 방법은 새 클래스를 작성한 다음 인터페이스를 구현하는 것과 같습니다.
문제는 단지 인터페이스의 메소드를 구현하기 위해 새 클래스를 생성하는 것이 너무 까다로워서 대부분의 작성 메소드가 익명의 내부 클래스를 직접 작성한다는 것입니다.
우리는 클래스 이름에 신경을 쓰지 않기 때문에 구체적인 구현에만 주의를 기울입니다. 이는 익명 내부 클래스의 일반적인 사용 시나리오이기도 합니다.
'미친 자바 강의노트' 6장에 자세한 설명이 나와 있습니다. 책을 읽기 싫으시면 '익명 내부 클래스'를 검색해 보세요
익명 내부 클래스는 이 인터페이스를 구현하는 클래스와 동일합니다. 선언과 구현을 함께 작성하면 됩니다.