2008-11-04 4 views
5

Можно ли реализовать автобоксинг для собственных классов?Userland autoboxing?

Для того, чтобы проиллюстрировать мой пример, это то, что я мог бы написать:

Foo foo = "lolcat"; 

И это то, что Java будет делать (в соответствии с собственными определениями, где-то, как-то), под капотом:

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

Итак, возможно ли это как-то или это только функция JVM?

ответ

12

Нет, java не поддерживает перегрузку оператора (http://en.wikipedia.org/wiki/Operator_overloading).

Autoboxing - это функция компилятора и недоступна для ваших собственных классов.

Рассуждение объясняется здесь: http://www.cafeaulait.org/javafaq.html#xtocid1902938

+2

Это не совсем правильно. Java не поддерживает пользовательскую перегрузку оператора, она поддерживает перегрузку оператора в своих классах, когда это кажется (STRINGS!) – MetroidFan2002 2008-11-04 16:48:05