是否可以自动重载?

时间:2012-04-24 14:15:31

标签: java generics overloading

考虑一下:

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)从我扩展数字时获得了很多满足感。我只想用对象而不是数字来实现相同的效果。

感谢。

1 个答案:

答案 0 :(得分:2)

Autoboxing是语言规范的一部分,无法扩展(无需更改编译器)