• Java返回类型泛型的用法小结


             Java返回类型泛型的用法小结

    关于Java泛型的基本用法就不多说了,主要是一个编译期的检查,也避免了我们代码中的强制转换,比较经典的用法有泛型DAO,泛型Page的DTO。


    现在我要说的是一个挺有趣但是貌似还不是太多的人在代码中使用的方法,前段时间用guava和op4j的时候发现这样的用法,看看了源码,也是很简单的。


    比如guava中创建集合的方法 List<xx> list = Lists.newArrayList(),这个代替了我们传统的 new ArrayList<xx>,为什么在=的右边不需要泛型了呢,我们看看源码。

    [java] view plain copy
     
    1. public static <E> ArrayList<E> newArrayList() {  
    2.   return new ArrayList<E>();  
    3. }  
    返回类型中带有泛型E,并且这个泛型的来源在 static和 ArrayList之间的位置,我自己的理解是这个就和=左边的一致,可能说的不够专业但是意思应该就这样。


    于是我就依样画葫芦在自己的代码中也用了起来。


    我要做的是一个仿httpsession机制的自定义协议是session。在httpsession.getAttribute方法返回的是一个 Object,然后我们再类型转换。现在我用返回类型泛型来优化这个代码,以下是我自定义协议session的getAttribute的代码。

    [java] view plain copy
     
    1. @SuppressWarnings("unchecked")  
    2. public <E> E getAttribute(String key) {  
    3.     return (E) map.get(key);  
    4. }  
    调用代码
    [java] view plain copy
     
    1. Boolean isFirst = session.getAttribute("first");  
    在httpsession中我们则要这么写
    [java] view plain copy
     
    1. Boolean isFirst = (Boolean)session.getAttribute("first");  

    泛型的用法还有很多,有新的心得再补充更新
  • 相关阅读:
    好兴奋,我的博客终于上线了
    学技术,该怎么看书
    PHP程序员求职经验总结
    Jquery中extend使用技巧
    JavaScript(JS)实现省市联动选择下拉列表
    银行家算法之JavaScript实现
    JS中的两种刷新方法以及区别和适用范围
    一段上传图片预览JS脚本,Input file图片预览的实现
    本博客模板说明
    深圳,想说爱你不容易!
  • 原文地址:https://www.cnblogs.com/timssd/p/5429158.html
Copyright © 2020-2023  润新知