gpt4 book ai didi

java - 具有有界泛型接口(interface)的泛型接口(interface)

转载 作者:行者123 更新时间:2023-12-01 17:49:53 25 4
gpt4 key购买 nike

假设我有泛型接口(interface):

public interface MyContainer<E>{
E someMethod();
}

现在我有另一个界面,我希望它是这样的:

public interface MyService<T extends MyContainer<E>>{
// someMethod goes here
}

它当然不能编译,它只能像这样编译:

public interface MyService<E,T extends MyContainer<E>>{
// someMethod goes here
}

但我不喜欢它,因为 MyService 接口(interface)不关心 E 它只关心它的类型参数扩展 MyContainer。有什么解决办法吗?

最佳答案

but I don't like it

开始喜欢它。

您必须在引用类型参数之前声明它们,就像在使用变量之前声明变量一样。

如果您关心 E 的类型,那么你必须声明它。界面MyService关心E如果它用 T extends MyContainer<E> 引用它.

如果你的界面不关心什么E是的话,那么您可以使用无界通配符。

public interface MyService<T extends MyContainer<?>>

但是,此接口(interface)的每个实现都需要重新声明 T完全像这样或提供完全满足此约束的类型参数。你将无法摆脱它 ? .

您的声明E并按原样使用它是我能看到的最佳解决方案。必须额外输入E,没什么大问题。

关于java - 具有有界泛型接口(interface)的泛型接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51524855/

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