作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看到了这些:
我确实理解编译器提示的原因。
无论如何,如果我们只使用泛型作为返回值。
public interface Connection
{
<T extends Comparable<? super T>> T getVersion();
}
然后这个实现只给出一个警告(我使用的是Java 7):
public class IoConnectionStub implements Connection
{
public String getVersion()
{
return "1.0";
}
}
这有效吗?还是会引起一些问题?
谢谢!
最佳答案
对于通用方法,调用者可以指定类型参数 - 所以我应该能够使用:
Connection foo = new IoConnectionStub();
Integer x = foo.<Integer>getVersion();
这显然不适用于您的情况。
听起来如果你真的需要这个(我认为这对于版本属性来说有点奇怪......)你会想要使接口(interface)通用 - 这样 IoConnectionStub
可以实现Connection<String>
例如,您最终会得到以下代码:
Connection<String> foo = new IoConnectionStub();
String version = foo.getVersion();
您不能要求 Integer
版本号,因为IoConnectionStub
不会实现Connection<Integer>
.
关于java - 实现返回泛型类型的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23238937/
我是一名优秀的程序员,十分优秀!