A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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;
        }



}

5 个回复

倒序浏览
本帖最后由 李荣壮 于 2011-12-6 16:40 编辑

............
回复 使用道具 举报
因为你的ArrayList容器中存入了多种类型对象,编译器不知道你存入的类型是什么类型,你在操作的时候容易会产生错误,所以提示使用泛型来约束存入的对象
回复 使用道具 举报
t_mac 黑马帝 2011-12-6 18:53:20
板凳
我们一般用到容器都会使用泛型的,就是指定这个容器装什么类型的对象,你如果没指定的话,编译时系统会提示你可能出现安全问题,打个比方说,你定义了一个容器,你只想让它装String类型的对象,但你又没使用泛型,所以当你往里添加一个其他类型的对象也不会报错,但这不是你想要的,也就是带来了安全隐患。
回复 使用道具 举报
t_mac 黑马帝 2011-12-6 18:53:49
报纸
我们一般用到容器都会使用泛型的,就是指定这个容器装什么类型的对象,你如果没指定的话,编译时系统会提示你可能出现安全问题,打个比方说,你定义了一个容器,你只想让它装String类型的对象,但你又没使用泛型,所以当你往里添加一个其他类型的对象也不会报错,但这不是你想要的,也就是带来了安全隐患。
回复 使用道具 举报
泛型就是针对LZ这样,把其他类型的元素添加到同一个集合中的情况,所以使用泛型后即可解决该问题。
格式:
ArrayList<T> al = new ArrayList<T>(); //T指的就是实际元素的类型,只能为引用数据类型(Integer等),而不能为基本数据类型(int等)
例如:
ArrayList<String> al = new ArrayList<String>();
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马