考虑一下:
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)
,这在我扩展Number时得到了很多满足。我只希望对象具有相同的效果,而不是数字。谢谢。
最佳答案
自动装箱是语言规范的一部分,不能扩展(无需更改编译器)