此方法声明中有何错误?
public abstract class A<K extends Number>{
public abstract <K> A<K> useMe (A<K> k);
}
我看到编译错误:
java: type argument K is not within bounds of type-variable K
我对这个编译错误的第一个想法是 - 不能保证 K 在我的方法声明中是数字,这就是问题出现的原因。
但是在如下的另一种情况下:
public abstract <K> A<? extends Number> useMe (A<? super K> k);
A
有什么区别?
从类中删除扩展数字并使用方法添加它,即公共抽象类 A
好的,这里有一个不同的答案。原因是尽管您使用
abstract class A<K extends Number>{
public abstract <T> A<T> useMe(A<T> t);
}
这里<代码>
abstract class A<K extends Number>{
public abstract <T extends Number> A<T> useMe(A<T> k);
}