黑马程序员技术交流社区
标题:
急~ 为什么编译显示 使用了未经检查或不安全的操作
[打印本页]
作者:
yaowenjiang
时间:
2011-12-6 16:06
标题:
急~ 为什么编译显示 使用了未经检查或不安全的操作
本帖最后由 yaowenjiang 于 2011-12-7 18:05 编辑
import java.util.*;
public class PersonOne{
public static void main(String [] args){
Collection c=new ArrayList();
c.add("Hello");
c.add(new Name("J1","K2"));
c.add(new Integer(100));
System.out.println(c);
}
}
class Name{
private String firstName;
private String lastName;
Name(String f,String l){
firstName=f;
lastName=l;
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public String toString(){
return firstName+" "+lastName;
}
}
作者:
李荣壮
时间:
2011-12-6 16:33
本帖最后由 李荣壮 于 2011-12-6 16:40 编辑
............
作者:
黄杰
时间:
2011-12-6 17:29
因为你的ArrayList容器中存入了多种类型对象,编译器不知道你存入的类型是什么类型,你在操作的时候容易会产生错误,所以提示使用泛型来约束存入的对象
作者:
t_mac
时间:
2011-12-6 18:53
我们一般用到容器都会使用泛型的,就是指定这个容器装什么类型的对象,你如果没指定的话,编译时系统会提示你可能出现安全问题,打个比方说,你定义了一个容器,你只想让它装String类型的对象,但你又没使用泛型,所以当你往里添加一个其他类型的对象也不会报错,但这不是你想要的,也就是带来了安全隐患。
作者:
t_mac
时间:
2011-12-6 18:53
我们一般用到容器都会使用泛型的,就是指定这个容器装什么类型的对象,你如果没指定的话,编译时系统会提示你可能出现安全问题,打个比方说,你定义了一个容器,你只想让它装String类型的对象,但你又没使用泛型,所以当你往里添加一个其他类型的对象也不会报错,但这不是你想要的,也就是带来了安全隐患。
作者:
刘基军
时间:
2011-12-7 10:17
泛型就是针对LZ这样,把其他类型的元素添加到同一个集合中的情况,所以使用泛型后即可解决该问题。
格式:
ArrayList<T> al = new ArrayList<T>(); //T指的就是实际元素的类型,只能为引用数据类型(Integer等),而不能为基本数据类型(int等)
例如:
ArrayList<String> al = new ArrayList<String>();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2