java泛型问题
ringa_lee
ringa_lee 2017-04-17 15:06:07
[Java讨论组]

有如下一个类:

public class BaseDao<T> {

    
    public <E> Page<E> find(Page<E> page, String qlString) {
        return find(page, qlString, null);
    }

    public T get(String id){
        
       return (T)getById(id); 
    }
}

对于get方法中的T,我能够理解,即外部传入的参数化类型
但是对于find方法中的E,表示不太理解,如果是简单的规范参数,为什么在返回类型的前面还要加一个<E>
求解惑

ringa_lee
ringa_lee

ringa_lee

全部回复(6)
怪我咯

第一个是泛型方法(参数列表使用一个,或多个泛型类型) 方法前面列出()方法参数列表中使用到的泛型。

https://docs.oracle.com/javase/tutorial/extra/generics/methods.html
http://www.cnblogs.com/iyangyuan/archive/2013/04/09/3011274.html

PHPz

因为这个E类型不是类定义时给出的范型T

黄舟

java方法的泛型参数写在返回值前面。c#写在方法名后面。

巴扎黑

额不知道是不是我理解错了。。
get里的T也不是规范参数而是申明了返回类型是T吧?

而page函数只是规定了参数有page,而page本身是E类型

高洛峰

这是泛型方法,说明它接收类型参数是E的Page,并返回Page

阿神

find方法的参数跟返回值的类型都是Page 只不过这个Page也是带有泛型的而已 不写也能跑 不过会有警告

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号