我有我试图使用泛型转换功能,所以到目前为止,我有:转换此功能使用泛型
public static <T extends Enum<T> & SomeInterface> EnumSet<T> convertToES(long val) {
EnumSet<T> es = EnumSet.noneOf(T.class);
for(T t : values()) {
if(t.getSomeProperty() > 0)
es.add(t);
}
return es;
}
凡SomeInterface有一个单一的财产getSomeProperty。
T.class不工作,并且values()似乎也不起作用。
以前我有:
public static EnumSet<SomeType> convertToES(long val) {
EnumSet<SomeType> es = EnumSet.noneOf(SomeType.class);
for (SomeType p : values()) {
if (p.getSomeThing())) > 0) {
es.add(p);
}
}
return es;
}
有没有一种方法,使这项工作,或者是不可能的?
您将需要通过类作为参数传递给你的方法。 (否则,'EnumSet.noneOf'本身不需要'Class'参数!) –
2012-02-02 03:24:37