C # eignen sich hervorragend zum Hinzufügen von syntaktischem Zucker. Java-Erweiterungsmethoden eignen sich hervorragend, um Bibliotheksentwicklern das Hinzufügen von Methoden zu ihren Schnittstellen zu ermöglichen.
Ich bin ein Nicht-Bibliothek Java-Entwickler und weiß, dass ich viele Vorteile davon bekommen werde, neue Funktionen von Bibliotheken zu bekommen, aber ich würde immer noch gerne die syntaktischen Zuckerfähigkeiten von C # -Erweiterungsmethoden haben.
Ist dies oder wird dies in zukünftigen Versionen von Java möglich sein?
zB: Ich möchte der String-Klasse Methoden hinzufügen ...
%Vor%Bitte konzentrieren Sie sich nicht auf dieses spezielle Beispiel, ich zeige nur die Klasse der Funktionalität, die ich erreichen möchte.
Java hat diese Funktion nicht und wird es wahrscheinlich auch nicht bald haben.
Groovy hat jedoch ein sehr ähnliches Feature , und es läuft auch auf der JVM. Vielleicht ist das eine Option.
C # eignen sich hervorragend zum Hinzufügen von syntaktischem Zucker. Java-Erweiterungsmethoden eignen sich hervorragend, um Bibliotheksentwicklern das Hinzufügen von Methoden zu ihren Schnittstellen zu ermöglichen.
Ich bin ein Nicht-Bibliothek Java-Entwickler und weiß, dass ich viele Vorteile davon bekommen werde, neue Funktionen von Bibliotheken zu bekommen, aber ich würde immer noch gerne die syntaktischen Zuckerfähigkeiten von C # -Erweiterungsmethoden haben.
Ist dies oder wird dies in zukünftigen Versionen von Java möglich sein?
zB: Ich möchte der String-Klasse Methoden hinzufügen ...
%Vor%Bitte konzentrieren Sie sich nicht auf dieses spezielle Beispiel, ich zeige nur die Klasse der Funktionalität, die ich erreichen möchte.
Java hat diese Funktion nicht und wird es wahrscheinlich auch nicht bald haben.
Groovy hat jedoch ein sehr ähnliches Feature , und es läuft auch auf der JVM. Vielleicht ist das eine Option.
Ich vermute, Sie denken an einen geplanten Zusatz zu Java 8, mit dem Sie Methoden mit Standardimplementierungen zu einer Schnittstelle hinzufügen können - damit Sie neue Methoden hinzufügen können, ohne alle zu brechen bestehender Code. Dies ist nur von Nutzen, wenn Sie den Schnittstellentyp steuern - also nicht für String
, weil String
keine Schnittstelle ist.
Tags und Links java extension-methods