作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们如何在 Java 中扩展有界泛型类型?例如,我有一个如下的抽象类:
public abstract class Entry<K, V extends EntryIterable<V>> {
private Entry<K, V> next;
private Entry<K, V> previous;
private K key;
private V value;
}
假设我有几个想要在子类中实现的方法。因此,当我尝试扩展此类时,我收到以下错误消息。
public class Record<K, V> extends Entry<K, V> {
public Record(K key, V value) {
super(key, value);
}
}
ERROR: Bound mismatch: The type V is not a valid substitute for the bounded parameter <V extends EntryIterable<V>> of the type Entry<K,V>
请帮忙。如果我犯了错误,请告诉我。
最佳答案
在 Entry
类,你期待V
输入扩展 EntryIterable<V>
。所以在 Record
及其所有子类,因为它扩展了 Entry
,你一定要问V
延伸EntryIterable<V>
也是如此。
也就是说,这会起作用:
public class Record<K, V extends EntryIterable<V>> extends Entry<K, V> {
<小时/>
你也可以有更强的类型。我的意思是,如果你有课 EntryIterableAndRemovable
延伸EntryIterable
,你可以这样做:
public class Record<K, V extends EntryIterableAndRemovable<V>> extends Entry<K, V> {
关于java - 如何在java中扩展有界类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46064527/
我是一名优秀的程序员,十分优秀!