关于java 中的protected <P, R>
第一个问题
protected <P, R> List<R> execute(Map<P, R> callback, P data) {return null;}
protected List<Object> execute(Map<Object, Object> callback, Object data) {return null;}
二 我写了个简单的程序:但编译不过,求指教!!!!!!!!
Java code
public abstract class TestR {
protected <P, R> List<R> execute(Map<P, R> callback, P data) {
List<R> cc = new ArrayList<R>();
cc.add((R) "sadfw");
return cc;
}
}
public class TestB extends TestR{
public static void main(String[] args) {
System.out.println("cccc");
}
public void test() {
Map<String, Object> dataMap = new HashMap<String, Object>();
List<String> list = new ArrayList<String>();
execute(dataMap, list); // [color=#FF0000]报错,类型不匹配,该怎么使用??[/color]
}
}
三 关于<P, R>的学习文档,
谢谢大家啦!!
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
LS已经都说了,LZ只要能理解清楚P,R的关系就好了
protected <P, R> List<R> execute(Map<P, R> callback, P data) {
Map<String, Object> dataMap = new HashMap<String, Object>();
对于Map来说,P是String, R是Object
对于execute方法的参数来说,data要和Map的key的类型一样
execute(dataMap, list); //这里的list和dataMap的key的类型不一样,所以编译失败
也就是,定义和调用的时候,P,R的参数要一致
------解决方案--------------------楼上都解了,我无话可说了!