读书人

关于java 中的protected lt;P, Rgt;解决办

发布时间: 2012-04-25 19:32:32 作者: rapoo

关于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>的学习文档,

谢谢大家啦!!

[解决办法]
探讨
二 我写了个简单的程序:但编译不过,求指教!!……

protected <P, R> List<R> execute(Map<P, R> callback, P data) {

Map<String, Object> dataMap = new HashMap<String, Object>();
List<String> list = new ArrayList<String>();
execute(dataMap, list); // 报错,类型不匹配,该怎么使用??

[解决办法]
探讨
第一个问题
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;}

第一问题是,两者之间的区别
忘写了

[解决办法]
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的参数要一致
[解决办法]
楼上都解了,我无话可说了!

读书人网 >J2EE开发

热点推荐