很抱歉又出现一个“Java泛型方法不适用”的问题。但没有答案可以解决我的问题:
问题代码:
public final class Native<T> {
private void test1(Ref ref, Integer key) {
}
final class Ref {
private final Native factory;
private Ref(Native factory) {
this.factory = factory;
}
public void test2() {
factory.test1(this, 1);
}
}
}
错误:
方法test1(Native.Ref, Integer)
Native 类型中的参数不适用于 (Native<T>.Ref, int)
如果我像这样删除工厂:
public void test2() {
test1(this, 1);
}
然后就可以了,但是不知道为什么?提前致谢。
最佳答案
改变
private final Native factory;
private Ref(Native factory) {
至
private final Native<T> factory;
private Ref(Native<T> factory) {
您永远不应该使用泛型类型,就好像它不是泛型一样。
关于Java泛型错误: not applicable for the arguments <T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22678998/