Es gibt einige Diskussionen zu SO über Setter-Methoden, die "diesen" Typ zurückgeben. Und es sieht so aus, als ob Java 7 den Vorschlag hatte, diese ungültigen Methoden zurückzugeben. Aber dieser Vorschlag konnte es nicht zu Java 7 Features schaffen. Ich konnte nicht feststellen, ob dieser Vorschlag auf Java 8 oder höher verschoben wurde oder vollständig verworfen wurde. Ist es?
Siehe Link - /programming/31584/design-java-and-returning-self-reference-in-setter-methods
Antworten:
Ich kann anscheinend keine Quellen dafür finden, aber ich glaube, diese Funktion wurde komplett eingestellt. Es gibt zahlreiche Gründe, die mir einfallen:
Leistung - Jede
void
Methode verfügt jetzt über einen zusätzlichen Rückgabe-Opcode, und jede Stelle, an der diese Methode aufgerufen wird, muss implizit angegeben werden, espop
sei denn, sie verwendet tatsächlich eine MethodenverkettungAbwärtskompatibilität - Durch Kompilieren mit dieser Funktion wird der Code plötzlich inkompatibel, da sich der Vertrag für jede
void
Methode geändert hatNatürlich kann dies auch vom Compiler implementiert werden ( aufrufende Methode an
void
? Sie meinten wahrscheinlichthis
, lassen Sie mich dies implizit hinzufügen ), wissen aber nicht, was die Nachteile dieses Ansatzes sind.quelle
Ich glaube nicht, dass dies jemals offiziell für die Inkarnation von Project COIN 2009 vorgeschlagen wurde. Diese Seite gibt vor , alle Vorschläge aufzulisten, und ich sehe keinen, der dem entspricht.
Wenn es nicht vorgeschlagen worden wäre, wäre es nicht in Betracht gezogen worden.
quelle