Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java 9: Anonieme inner classes vereenvoudigen met de Diamond Operator

De diamond-operator (<>) werd in Java 7 geïntroduceer om code leesbaarder te maken, maar kon niet met anonieme inner classes gebruikt worden. In Java 9 kan dit wel, wat code vereenvoudigt en leesbaarheid verbetert. Hieronder code voor Java 9:

Tester.java (voor 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();
}

Uitvoer

1
2
Test

Met Java 9 mogen we <> gebruiken met anonieme klassen:

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

Uitvoer

1
2
Test

Java

  1. Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
  2. Java instanceof operator: een uitgebreide gids
  3. Java-erfenis meesteren: concepten, typen en praktische voorbeelden
  4. Java geneste en inner classes meesteren: typen, voorbeelden en best practices
  5. Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
  6. Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
  7. Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
  8. Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
  9. Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
  10. Java Generics: Herbruikbare, type-veilige code bouwen
  11. Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen