繁体   English   中英

Java方法返回实现接口的枚举

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM