English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 예외 처리

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java 9 钻石操作符(Diamond Operator)

Java 9 새로운 기능

钻石操作符是在 java 7 中引入的,可以让代码更易读,但它不能用于匿名的内部类。

在 java 9 中, 它可以与匿名的内部类一起使用,从而提高代码的可读性。

考虑以下 Java 9 之前的代码:

public class Tester {
   public static void main(String[] args) {
      1) {
         @Override
         public void handle() {
            System.out.println(content);
         {}
      };
      intHandler.handle();
      Handler<? extends Number> intHandler1 2) {
         @Override
         public void handle() {
            System.out.println(content);
         {}
      };
      intHandler1.handle();
      Handler<?> handler = new Handler<Object>(
         @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
테스트

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
테스트

Java 9 새로운 기능