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

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


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


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

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


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


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

	@SuppressWarnings("unchecked")
	public <E> E getAttribute(String key) {
		return (E) map.get(key);
	}
调用代码
		Boolean isFirst = session.getAttribute("first");
在httpsession中我们则要这么写
		Boolean isFirst = (Boolean)session.getAttribute("first");

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值