Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Java 9 - Operador de diamante de clase interna

El operador Diamond se introdujo en Java 7 para hacer que el código fuera más legible, pero no se podía usar con clases internas anónimas. En Java 9, también se puede usar con la clase anónima para simplificar el código y mejorar la legibilidad. Considere el siguiente código anterior a Java 9.

Probador.java

Demostración en vivo
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();
}

Salida

1
2
Test

Con Java 9, podemos usar el operador <> con clase anónima como se muestra a continuación.

Probador.java

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();
}

Salida

1
2
Test

Java

  1. Palabra clave final de Java
  2. Operador de instancia de Java
  3. Herencia de Java
  4. Clase interna y anidada de Java
  5. Clase estática anidada de Java
  6. Clase anónima de Java
  7. Clase única de Java
  8. Reflexión Java
  9. Clase Java ObjectOutputStream
  10. Genéricos de Java
  11. Clase de archivo Java