java 方法中如何在返回类型使用泛型

java 方法中如何在返回类型使用泛型,第1张

主要是一兆厅个编译期的检查,也避免了我们代码中的强制转换,比较经典的用法有泛型DAO,泛型Page的DTO。

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

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

[java] view plaincopy

public static <E>ArrayList<E>newArrayList() {

return new ArrayList<E>()

}

返回类型中带有泛型E,并且这个泛型的来源在 static和 ArrayList之间的位置,我自己的理解顷兄是这个就和=左边的一致,可能说的不够专业但是意思应该就这样。

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

我要做的是一个仿httpsession机制的自定义协议是session。在httpsession.getAttribute方法返回的是雀猜袭一个

Object,然后我们再类型转换。现在我用返回类型泛型来优化这个代码,以下是我自定义协议session的getAttribute的代码。

[java] view plaincopy

@SuppressWarnings("unchecked")

public <E>E getAttribute(String key) {

return (E) map.get(key)

}

调用代码

[java] view plaincopy

Boolean isFirst = session.getAttribute("first")

在httpsession中我们则要这么写

[java] view plaincopy

Boolean isFirst = (Boolean)session.getAttribute("first")

泛型的用法还有很多,有新的心得再补充更新

把泛型加在修饰符的前面,具体代码如下:

public <T> void show(T t) 猛棚{

// do someing

}

备注:一般泛型方春知液法的扒物参数也是泛型的,否则这个泛型方法没有意义,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/bake/11978224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存