ArrayList<String> array2 = null;
// NullPointerException
for (String str : array2) {
if (str.equals("world")) {
array2.add("EE");
}
}
}
}
****************************************************************************************************************
泛型在类和方法上的使用
/*
* 我能不能不用重载方法,就可以实现同一个方法,输出不同类型的数据呢?
* 防止在增加后取出数据后 数据类型发现转变为使用。 比如存入一个Integer类型后获取到的是一个String类型。
*/
public class ToolTest {
public static void main(String[] args) {
Tool t = new Tool();
t.show("hello");
t.show(10);
}
}
/*
* 泛型类:把泛型定义在类上。
*/
public class Tool2<QQ> {//自定义泛型中的类型是QQ类型,接收和获取到的都是QQ类型
public void show(QQ qq) {
System.out.println(qq);
}
}
public class Tool2Test {
public static void main(String[] args) {
// Tool2 t = new Tool2();
// t.show("hello");
// t.show(10);
Tool2<String> t = new Tool2<String>();
t.show("hello");
Tool2<Integer> t2 = new Tool2<Integer>();
t2.show(10);
}
}
/*
* 你为了保证方法传递不同的参数,你就在类上明确了类型。//这样可以一个类上面定义很多个类型
* 这样的话,你有没有发现一个问题呢?
* 它要是能够在调用方法的时候,才去明确类型该有多好呢?
*
* 泛型方法:把泛型加在方法上。
*/
public class Tool {
public <BYD> void show(BYD byd) {
System.out.println(byd);
}
}
package cn.itcast_08;
public class ToolTest {
public static void main(String[] args) {
Tool t = new Tool();
t.show("hello");
t.show(10);
}
}
这个同理迭代器 不能在操作数组的时候对数组里面的内容直接修改 否则并发修改异常