Java泛型错误: not applicable for the arguments <T>

标签 java generics

很抱歉又出现一个“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/

相关文章:

java - 在收到 UDP 数据包之前不显示 Activity

java - AsyncTask错误Android应用程序崩溃

java - 为什么类型推断在这里失败了?

ios - 用于测试对象类型的通用 Swift 函数

java - 类型安全 : Unchecked cast between Class-Objects

java - 在 SOAP MTOM 中,在附件部分部分指定 "content-id"的语法是什么?

java - WS 客户端中的许多 TIME_WAIT 连接

java - 减少代码重复

function - Typescript 中函数的通用返回类型

c# - 用于请求不同资源的可选分页列表的通用异步方法