gpt4 book ai didi

java - 实现返回泛型类型的接口(interface)

转载 作者:行者123 更新时间:2023-12-03 06:04:54 27 4
gpt4 key购买 nike

我看到了这些:

我确实理解编译器提示的原因。

无论如何,如果我们只使用泛型作为返回值。

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com