Java:方法参数中的泛型枚举
对应以下问题:
我想知道,如何我可以格式化代码以一般要求枚举吗?
Foo.java
public enum Foo {
a(1), b(2);
}
Bar.java
public class Bar {
public Bar(generic enum);
}
稍后我将拥有更多枚举类,例如“foo”,但您仍然可以创建包含任何类型枚举类的 bar。顺便说一句,我有“jdk1.6.0_20”...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
请参阅 EnumSet 中的方法以供参考,例如
(此方法返回一个EnumSet 包含给定 Enum 元素中的一个元素 e)
因此,您需要的通用边界是:>
实际上,您可能会创建
Bar
本身通用:您还可以添加一个工厂方法,例如
from
、with
等。这样,在客户端代码中您只需编写一次通用签名:
参考:
See the methods in EnumSet for reference, e.g.
(This method returns an EnumSet with one element from a given Enum element e)
So the generic bounds you need are:
<E extends Enum<E>>
Actually, you will probably make
Bar
itself generic:You may also add a factory method like
from
,with
etc.That way, in client code you only have to write the generic signature once:
Reference:
您也可以这样做:
每个枚举都扩展 Enum。如果您需要枚举常量,则可以使用它:
You can also do it this way:
Every enumeration extends Enum. Then you can use this if you need the enum constants:
bar
方法现在可以接收任何类型的枚举。The
bar
method can now receive any kind of enum.