我有以下类有什么不对这个Java泛型方法的语法
KeyValue.java
package test;
public class KeyValue<T> {
private String key;
private T value;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
Reader.java
package test;
public interface Reader<T> {
<S extends T> S read(Class<S> clazz);
}
Test.java
package test;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<KeyValue<Object>> list = find(KeyValue.class, new Reader<KeyValue<Object>>() {
@Override
public <S extends KeyValue<Object>> S read(Class<S> clazz) {
return null;
}
});
}
public static <T> List<T> find(Class<T> targetClass, Reader<T> reader) {
return null;
}
}
这里的方法调用find(......)
在编译时失败,出现错误消息
类型Test中的方法find(Class,Reader)不适用于参数(Class,new Reader>(){})。
该方法必须返回List<KeyValue<Object>>
类型的对象。
这个设计有什么问题,以及如何解决这个问题。
谢谢。
我改变了它,这是我的错误。现在都是'KeyValue'类型。 – 2011-05-13 07:45:39
所以这解决了你的问题? – BertNase 2011-05-13 07:46:34
不,仍然有错误的方法找到(类,读者)类型测试不适用于参数(类,新的读者>(){})' –
2011-05-13 07:47:43