java泛型有什么用?

来源:百度知道 编辑:UC知道 时间:2024/05/06 12:28:56
例如:List<String> list = new ArrayList<String>();
加上<String>与不加有什么区别?能讲一下原理吗?

可以直接说:楼上的SB,范型是解决对象转型而来.范型是强制类型,省去了转型的烦恼[类型不符编译时报错]

List<String> list = new ArrayList<String>();
list.add() 方法 只能 添加 String 类型的变量
list.get( i ) 方法的返回类型 为 String

List list = new ArrayList();
list.add() 方法 可以添加任何 Object 类型的变量
list.get( i ) 方法的返回类型 为 Object (而这就需要我们自己进行强转)

一般都是数据结构声明定义是用,最简单理解就是规定了结构来历元素的类型.

加上String 这个list就只能用来存String,存其它的会编译错误,这样做可以减少强制类型转换的次数,如不加你每次取出来都要强制类型转换,不安全,万一他不是String类型的``强制类型转换就会报错啦!!

Generics add stability to your code by making more of your bugs detectable at compile time.

简单翻译:

泛型能够使更多的(语法)错误在编译期被检测出, 从而增加了代码的稳定性

其实就是减少了程序员的编译代码的复杂度