考虑一下:

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时得到了很多满足。我只希望对象具有相同的效果,而不是数字。

谢谢。

最佳答案

自动装箱是语言规范的一部分,不能扩展(无需更改编译器)

09-04 06:48