【发布时间】:2013-04-12 19:39:19
【问题描述】:
我有以下代码as seen in ideone.com:
import java.util.*;
class Test{
interface Visitor{
public <T> void visit(T Value);
}
class MyVisitor<T> implements Visitor{
List<T> list = new ArrayList<T>();
public <T> void visit(T value){
list.add(value);
}
}
}
编译后这段代码会产生以下+错误:
Main.java:12:错误:找不到合适的方法添加(T#1) list.add(值); ^ 方法 List.add(int,T#2) 不适用 (实际参数列表和形式参数列表的长度不同) 方法 List.add(T#2) 不适用 (实际参数 T#1 不能通过方法调用转换转换为 T#2)其中 T#1,T#2 是类型变量: T#1 扩展了在方法访问中声明的对象(T#1) T#2 扩展类 Test.MyVisitor 1 中声明的对象 1 错误问题是 type T in visit 不被认为是相同的 T in list 。我该如何解决这个编译问题?
【问题讨论】: