java枚举 返回类型_Java枚举中的协变返回类型

正如本网站上的另一个问题所述,这样的事情是不合法的:

public enum MyEnum {

FOO {

public Integer doSomething() { return (Integer) super.doSomething(); }

},

BAR {

public String doSomething() { return (String) super.doSomething(); }

};

public Object doSomething();

}

这是由于协变返回类型显然不能用于枚举常量(再次打破了枚举常量是枚举类型的单例子类的错觉……)那么,我们如何添加一些泛型:这是合法的吗?

public enum MyEnum2 {

FOO {

public Class doSomething() { return Integer.class; }

},

BAR {

public Class doSomething() { return String.class; }

};

public Class> doSomething();

}

这里,所有三个返回Class对象,但各个常量比整个枚举类型“更具体”……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值