使用泛型的优点:

  使用泛型优点:
  1.能够避免在强转时出现问题

  2.我们将运行时可能出现错误(强转错误)提升编译时期,减少安全隐患


import java.util.ArrayList;
import java.util.Collection;

/*
 * *ArrayList底层定义:
 * class ArrayList<E>{
 *   boolean add(E e){//使用的E就是ArrayList上的E

 */


public class Demo04 {
public static void main(String[] args) {
         //method01();
    method02();
}
//不使用泛型
public static void method01(){
Collection c=new ArrayList();//如果不写<>,默认会把泛型变量替换成Object类型
   c.add("abc");//形参相当于:Object e="abc"//多态
   c.add(3);//首先装箱->new Integer(3),形参相当于:Object e=new Integer(3);//多态
   
   for (Object obj : c) {
     if(obj instanceof String){//判断obj指向的对象是否是String类的对象
                           //第二次循环obj=new Integer(3),不是String类型对象 if结果为false
  String str=(String)obj;//第一次循环obj="abc" String str="abc"
 
  System.out.println(str.length());
     }
}
}

// 使用泛型
public static void method02() {
Collection<String> c = new ArrayList<String>();
c.add("def");
c.add("a");
  // c.add(4);//不能添加4,因为add的方法的形参已经被限定为String


for (Object obj : c) {
//if (obj instanceof String) {//此时不需要判断obj指向的是否是字符串对象
                            //因为我们已经利用泛型限制存入集合中的都是String类型
String str = (String) obj;// 第一次循环obj="abc" String str="abc"


System.out.println(str.length());

}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值