作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是我的问题,我有三个抽象类,它们都是通用的,我想要这样的东西:
public abstract class AbstracOne< T extends AbstractTwo< K extends AbstractThree<K> >>>
这不起作用,我收到以下错误(在第二个扩展上):
token “扩展”的语法错误,预期。
但是,如果我使用下面的代码,它是有效的:
public abstract class AbstracOne< T extends AbstractTwo< ? extends AbstractThree<?> >>>
那么,使用 K 和 有什么区别呢?
非常感谢
最佳答案
您可以阅读这篇优秀的 FAQ by Angelica Langer清除这种区别。
泛型类具有类型参数,当您使用泛型类时,这些类型参数由类型实参代替。
类型参数可以有约束。类型参数可以是完全限定类型或先前定义的类型参数。
因此,如果 K
已经定义,您可以使用它。您还可以在定义时添加约束。
public abstract class AbstractOne<K extends AbstractThree<K>, T extends AbstractTwo<K>>
祝你好运。
关于Java 通用 : Can a Generic extends another Generic class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41575998/
我是一名优秀的程序员,十分优秀!