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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

通过手动地改造现有集合,来实现定制集合

/*
        案例:手动实现编译时检查类型
       
                通过手动地改造现有集合,来实现定制集合。
       
        : 如果希望创建一个List对象,且该List对象中只能保存字符串类型。
*/

class  StrList {
       
                //这道题的思路是: 利用现有的ArrayList集合,进行改造,把其改造成只能存储String类型的集合。
               
                        //创建一个 ArrayList对象
         private  List  strList  = new  ArrayList();
         
         //定义strList的add方法
                /**
                        我们通过限定add方法只能接受String类型的参数,
                        来实现一个只能用于保存String类型的集合
                       
                */
         public  boolean  add(String ele){
                 
                 return strList.add(ele); //这里的add方法其实是ArrayList集合的
                 
         }
         
         //重写get方法,将get方法返回值类型改为String类型
         
         public  String get(int index){
                 
                 return  (String)strList.get(index);
         }
         
         public  int size(){
                 
                 return strList.size();
         }
         
         
}


public  class CheckType{
       
        public  static  void main(String[] args){
               
                //创建一个只想保存字符串的List集合
               
                StrList  strList  = new  StrList();
               
                strList.add("Structs2权威指南");
                strList.add("基于J2EE的Ajax宝典");
                strList.add("轻量级J2EE企业应用实战");
                //下面语句不能把integer对象“丢进”集合中,将引起编译错误
               
                strList.add(5);
               
                System.out.println(strList);
               
                for(int i=0;i<strList.size();i++){
                       
                        String str= strList.get(i);
                }
        }
}

2 个回复

正序浏览
jxsryqt 发表于 2017-2-9 22:12
。。。泛型不就搞定的吗?

这就是之所以出现泛型的原因,这个案例也说明了,泛型机制的原理
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
。。。泛型不就搞定的吗?
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马