Java Generics错误:不适用于参数<t> </t>

时间:2014-03-27 05:28:02

标签: java generics

对不起另一个&#34; Java通用方法不适用&#34;题。但没有答案可以解决我的问题:

问题代码:

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);
        }
    }
}

错误:

Native类型中的方法test1(Native.Ref, Integer)不适用于参数(Native<T>.Ref, int)

如果我这样删除工厂:

    public void test2() {
        test1(this, 1);
    }

然后它有效,但我不知道为什么?提前谢谢。

1 个答案:

答案 0 :(得分:4)

更改

private final Native factory;
private Ref(Native factory) {

private final Native<T> factory;
private Ref(Native<T> factory) {

你永远不应该使用泛型类型,就好像它不是通用类型一样。