2008-11-04 10 views
5

Czy można wdrożyć autoboxing do własnych zajęć?Autobok użytkownika?

Aby zilustrować moim przykładzie jest to, co może chcę napisać:

Foo foo = "lolcat"; 

I to właśnie Java zrobi (zgodnie z własnymi definicjami, gdzieś, jakoś), pod maską:

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

Czy jest to możliwe, czy jest to tylko funkcja JVM?

Odpowiedz

12

Nie, java nie obsługuje przeciążania operatorów (http://en.wikipedia.org/wiki/Operator_overloading).

Autoboxing jest funkcją kompilatora i nie jest dostępny dla twoich własnych klas.

Rozumowanie jest wyjaśnione tutaj: http://www.cafeaulait.org/javafaq.html#xtocid1902938

+2

To nie do końca poprawne. Java nie obsługuje przeciążania operatora generowanego przez użytkownika, wspiera przeciążanie operatorów w swoich klasach, gdy ma na to ochotę (STRINGS!) – MetroidFan2002

Powiązane problemy