Java泛型---其他

多态、数组中能否使用泛型

import java.util.List;

/**
 * 1.泛型没有多态
 * 2.泛型没有数组
 * 底层原因?
 * @author Administrator
 *
 */
public class GenericPolymorphism {
	public static void main(String[] args) {
		//父类引用指向子类对象--->多态
		//编译为父类,使用为子类
		List list = new ArrayList();
		//泛型不能用于多态
		//List<List> list1 = new ArrayList<LinkedList>();
		//使用通配符 及extends解决
		List<? extends List> list2 = new ArrayList<LinkedList>();
		
		ArrayList list3 = new ArrayList(10);
		//泛型不能用于数组
//		ArrayList<E> list4 = new ArrayList<E>(10);
		
		//jdk1.7对泛型的简化,仅需要在声明时规定类型
		List< List> list5 = new ArrayList<>();
	}
}

    泛型的擦除

    

/**
 * 泛型的擦除
 *在使用泛型的时候没有定义具体的类型当做Object使用(类似,但不等同于,编译时不会进行类型检查),会弹出警告Waring
 * 
 * @author Administrator
 *
 */
public class MyStuApp {
	public static void main(String[] args) {
		//泛型的擦除,即不指定类型,当做普通类、方法使用
		GenericClass stu = new GenericClass();
		
		
		GenericClass<Integer> stu1 = new GenericClass<Integer>();
		stu1.setObj(1111);
		GenericClass<String> stu2 = new GenericClass<String>();
		stu2.setObj("aaa");

		Integer num = stu1.getObj();
		String str = stu2.getObj();
		System.out.println(num + "," + str);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_30007589/article/details/80851185
今日推荐