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 - Inner Class Diamond Operator

Diamond-operator is geïntroduceerd in Java 7 om code leesbaarder te maken, maar het kon niet worden gebruikt met interne klassen van Anonymous. In Java 9 kan het ook worden gebruikt met anonieme klasse om code te vereenvoudigen en de leesbaarheid te verbeteren. Overweeg de volgende code voorafgaand aan Java 9.

Tester.java

Live demo
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 kunnen we de operator <> met anonieme klasse gebruiken, zoals hieronder wordt weergegeven.

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

Uitvoer

1
2
Test

Java

  1. Java laatste trefwoord
  2. Java-instantie van Operator
  3. Java-erfenis
  4. Java geneste en innerlijke klasse
  5. Java geneste statische klasse
  6. Java anonieme klasse
  7. Java Singleton-klasse
  8. Java-reflectie
  9. Java ObjectOutputStream-klasse
  10. Java-generieken
  11. Java-bestandsklasse