public class Generic {
public static void main(String[] args) {
//
/*ArrayList不使用泛型
好处:1.在add时,可以存储任何数据类型
坏处:1.在需要使用存储数据类型的时候需要向下转型,如果没有做instanceof 就容易报ClassCastException
* */
/*ArrayList使用泛型
好处1.将运行期可能出现的问题提前的到编译器,如ArrayList的泛型是String就只能存储String类型,存储别的类型就会报错
2.可以使用泛型中数据类型特有的方法:
坏处1.只能存储一种类型的数据
* */
//不使用泛型
demo01();
//使用泛型
demo02();
}
private static void demo02() {
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("天才");
arrayList.add("第一步");
arrayList.add("天才");
Iterator<String> iterator = arrayList.iterator();
while (iterator.hasNext()){
String next = iterator.next();
System.out.println(next);
System.out.println(next.length());//String特有的方法
}
}
private static void demo01() {
ArrayList arrayList = new ArrayList();
arrayList.add("天才");
arrayList.add("第一步");
arrayList.add(1235);
arrayList.add(true);
Iterator iterator = arrayList.iterator();
while (iterator.hasNext()){
Object next = iterator.next();
System.out.println(next);
if (next instanceof String){
String a=(String) next;
int length = a.length();
System.out.println(length);
}
}
}
}