考虑一下:
public static abstract class JunkValue<X>{
public abstract X value();
public static <X> JunkValue<X> fix(final X x){
return new JunkValue<X>()
{
@Override
public X value() {
return x;
}};
}
}
现在我可以很容易地制作这两种方法:
void test(HappyObject object){test(JunkValue.fix(object));}
void test(JunkValue<HappyObject> object){...}
我想告诉我的编译器,如果我有JunkValue<HappyObject>
参数,我可以使用HappyObject
对象参数代替此效果。
我从这样的事实中得出了这样的想法:你可以Number=1;
而不是Number=new Number(1)
从我扩展数字时获得了很多满足感。我只想用对象而不是数字来实现相同的效果。
感谢。
答案 0 :(得分:2)
Autoboxing是语言规范的一部分,无法扩展(无需更改编译器)