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: Simplificar Clases Internas Anónimas con el Operador Diamante

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

Tester.java

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 también como se muestra a continuación.

Tester.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 en Java: Variables, métodos y clases
  2. Operador instanceof en Java: Guía completa
  3. Dominando la herencia en Java: Conceptos, tipos y ejemplos prácticos
  4. Dominando clases anidadas e internas en Java: Tipos, ejemplos y mejores prácticas
  5. Entendiendo las clases anidadas estáticas en Java: Uso, diferencias y ejemplos
  6. Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
  7. Patrón Singleton en Java explicado: Cómo implementarlo y usarlo de forma segura
  8. Dominando la Reflexión en Java: Inspeccionando clases, métodos y campos en tiempo de ejecución
  9. Dominando ObjectOutputStream de Java: Serialización, Métodos y Ejemplos Prácticos
  10. Dominando Java Generics: Construyendo Código Reutilizable y Type-Safe
  11. Dominando las operaciones de archivos en Java con java.io: creación, lectura, escritura y eliminación