[英]Java method returns an enum which implements an interface
如何指定Java方法返回实现接口的枚举? 给出了这种方法:
public <T extends Enum<T> & SomeInterface> void someMethod(Class<T> type) {
}
我想这样做:
someMethod(anotherMethod());
anotherMethod
方法的签名应该是什么?
如果someMethod
需要一个Class<T>
参数,其中T extends Enum<T> & SomeInterface
,那么这就是你需要从返回的内容anotherMethod
。 由于您在所需电话中的括号中没有任何内容,我只想说:
public Class<T extends Enum<T> & SomeInterface> anotherMethod()
应该正确实施
<T extends Enum<? extends T> & SomeInterface> void someMethod(Class<T> type);
<T extends Enum<? extends T> & SomeInterface> Class<T> anotherMethod();
或更简单的版本
public class Example<T extends Enum<T> & SomeInterface> {
public void someMethod(Class<T> type) {}
public Class<T> anotherMethod() {}
}
anotherMethod
只需要返回一个Class
,它可能是你想到的扩展枚举和接口的完全类,或者只是一个通配符Class<?>
(尽管你会有编译时警告)。 如果要避免警告,则返回类型必须为Class<T>
,并且在您调用的方法中使用泛型定义T
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.