对不起另一个" 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);
}
}
}
错误:
Native类型中的方法test1(Native.Ref, Integer)
不适用于参数(Native<T>.Ref, int)
如果我这样删除工厂:
public void test2() {
test1(this, 1);
}
然后它有效,但我不知道为什么?提前谢谢。
答案 0 :(得分:4)
更改
private final Native factory;
private Ref(Native factory) {
到
private final Native<T> factory;
private Ref(Native<T> factory) {
你永远不应该使用泛型类型,就好像它不是通用类型一样。