2008-11-04 8 views
5

Ist es möglich, Autoboxing für Ihre eigenen Klassen zu implementieren?Userland Autoboxing?

mein Beispiel zu veranschaulichen, ist es das, was ich schreiben mag:

Foo foo = "lolcat"; 

Und das ist, was Java (laut meinen eigenen Definitionen, irgendwo, irgendwie) tun würde, unter der Haube:

Foo foo = new Foo(); 
foo.setLolcat("lolcat"); 

Also, ist das irgendwie möglich, oder ist es nur eine JVM-Funktion?

Antwort

12

Nein, Java unterstützt keine Überlastung des Operators (http://en.wikipedia.org/wiki/Operator_overloading).

Autoboxing ist eine Compilerfunktion und nicht für Ihre eigenen Klassen verfügbar.

Die Argumentation wird hier erklärt: http://www.cafeaulait.org/javafaq.html#xtocid1902938

+2

Das ist nicht ganz richtig. Java unterstützt kein vom Benutzer generiertes Überladen von Operatoren, es unterstützt das Überladen von Operatoren in seinen Klassen, wenn es sich anfühlt (STRINGS!) – MetroidFan2002

Verwandte Themen