산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java 9: 다이아몬드 연산자로 익명 이너 클래스 간소화

다이아몬드 연산자(<>)는 Java 7에서 코드 가독성을 높이기 위해 도입되었지만 익명 이너 클래스에서는 사용할 수 없었습니다. Java 9부터 익명 클래스에서도 사용할 수 있어 코드를 단순화하고 가독성을 높입니다. Java 9 이전 코드를 살펴보겠습니다.

Java 9 이전 (타입 명시 필요)

public class Tester {
    public static void main(String[] args) {
        Handler<Integer> intHandler = new Handler<Integer>(1) {
            @Override public void handle() { System.out.println(content); }
        };
        intHandler.handle();
        
        Handler<? extends Number> intHandler1 = new Handler<Number>(2) {
            @Override public void handle() { System.out.println(content); }
        };
        intHandler1.handle();
        
        Handler<?> handler = new Handler<Object>("test") {
            @Override public void handle() { System.out.println(content); }
        };
        handler.handle();
    }
}

abstract class Handler<T> {
    public T content;
    public Handler(T content) { this.content = content; }
    abstract void handle();
}

출력

1
2
Test

Java 9부터 익명 클래스에도 <> 연산자 사용 가능:

Java 9 이후 (다이아몬드 연산자 사용)

public class Tester {
    public static void main(String[] args) {
        Handler<Integer> intHandler = new Handler<>(1) {
            @Override public void handle() { System.out.println(content); }
        };
        intHandler.handle();
        
        Handler<? extends Number> intHandler1 = new Handler<>(2) {
            @Override public void handle() { System.out.println(content); }
        };
        intHandler1.handle();
        
        Handler<?> handler = new Handler<>("test") {
            @Override public void handle() { System.out.println(content); }
        };
        handler.handle();
    }
}

abstract class Handler<T> {
    public T content;
    public Handler(T content) { this.content = content; }
    abstract void handle();
}

출력

1
2
Test

java

  1. Java final 키워드 마스터: 변수, 메서드, 클래스에서의 활용
  2. Java instanceof 연산자 완벽 가이드: 기본 사용법부터 상속, 인터페이스까지
  3. Java 중첩/내부 클래스 마스터: 종류, 예제, 모범 사례
  4. Java 정적 중첩 클래스 이해: 용법, 내부 클래스와의 차이, 예제
  5. Java 익명 내부 클래스 마스터: 정의, 문법, 실전 예제
  6. Java 싱글톤 패턴 완벽 가이드: 안전하게 구현하고 사용하기
  7. Java 리플렉션 마스터: 런타임에 클래스, 메서드, 필드 검사 및 조작
  8. Java ObjectOutputStream 마스터하기: 직렬화, 메서드, 실전 예제
  9. Java 제네릭 마스터하기: 재사용 가능하고 타입 안전한 코드 작성
  10. java.io로 Java 파일 작업 마스터하기 – 생성, 읽기, 쓰기 및 삭제