浅谈java泛型

一 背景优势使用泛型机制编写的代码要比那些杂乱的使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性.java泛型对于集合类尤其有用。下面就强制类型转换和安全性两个方面叙述泛型程序设计

二 详述:泛型,其实就是编写的代码可以被不同类型的对象所重用,在java增加泛型类之前,泛型程序设计是靠继承实现的。下面就强制类型转换,安全检查介绍java泛型

//ArrayList类只维护一个Object引用的数组
public class ArrayList{
  private Object[] elementData;
  . . . 
  private Object get(int i){. . .}
  public void add(Object o){. . .}
}
//这样实现就会有两个问题,当获取一个值时必须进行强制类型转换,例如当arraylist中获取一个String对象的值时,
ArrayList olist = new ArrayList();
String str = (String) olist.get(0);
//当向arraylist添加元素的时候,没有提供任何安全检查,也就是说可以向arraylist添加任何类型的对象元素
olist.add(new File("...."));
//例如上述代码我们添加一个文件对象,在编译和运行时都不会报错,可是在其他地方如果将get的结果强制类型转换为String,就会产生一个错误


而泛型 提供了一个很好的解决方案 :类型参数  这样我们在定义ArrayList类就有一个类型参数来指示元素的类型:

ArrayList<String> olist = new ArrayList<String>();(注:java SE7以后,构造函数中可以省略泛型类型:ArrayList<String> olist = new ArrayList<>();)

这样使得我们编写的代码有更好的可读性,别人一看就知道,这个数组列表包含的是String对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值