泛型可以把运行期的错误提前到编译期进行检查并排除
package Object_Oriented;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
/*泛型通配符
? 不知道接受何种类型的数据
不能创建对象(定义的时候不能用),只能作为方法的参数使用(参数传递)
泛型没有继承(不能设想用Object类型去匹配所有的子类,只能匹配当前指定的类型,所以要用通配符来解决未定或多种可能的参数
*/
/*泛型通配符高级使用
上限:类型名称 <? extends 类> 对象名称
只能接受该类型及其子类型
下限:类型名称 <? super 类> 对象名称
只能接受该类型及其父类型
*/
public class G_I implements Generic <String>{
@Override
public void Method(String s) {
ArrayList<Integer> arr1 = new ArrayList<>();
arr1.add(1);
arr1.add(2);
arr1.add(3);
ArrayList<String> arr2 = new ArrayList<>();
arr2.add("Bill");
arr2.add("Lily");
arr2.add("Leo");
print_coll(arr1);
print_coll(arr2);
}
public static void print_coll(ArrayList<?> arrayList){
Iterator iterator = arrayList.iterator();
while (iterator.hasNext()){
Object obj = iterator.next();
System.out.println(obj);
}
}
public static void main(String[] args) {
new G_I().Method("Hello");
}
}