Java泛型

理解:Java集合有个缺点,把一个对象丢进集合里后,集合就会忘记这个对象的数据类型,当再次取出该对象时,该对象的编译类型会变成object类型(运行时类型没变),增加了泛型后的集合,完全可以记住集合中元素的类型,并在编译时检查几何中元素的类型,如果试图向集合中添加不满足类型要求的对象,编译器会提示错误。

目的:解决从集合中取数据时数据类型不统一的弊端。

泛型:Java的参数化类型,允许程序在创建集合时指定集合的参数元素的类型(类型不合要求将无法添加进集合)

package AllTests;

import java.util.ArrayList;

public class GenericityTest {

	public static void main(String[] args) {
		ArrayList list = new ArrayList();
		list.add(123);
		list.add("zhangsan");
		list.add("lisi");
		list.add("wangwu");
		list.add(true);
		for(Object ls:list) {
			System.out.println(ls);
		}
	}

}

当foreach似乎遍历时如果不用Object,该用什么呢?似乎哪个都不对。所以这就是泛型的作用了。

package AllTests;

import java.util.ArrayList;

public class GenericityTest {

	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<String>();
		list.add(123);        //这里会报错
		list.add("zhangsan");
		list.add("lisi");
		list.add("wangwu");
		for(Object ls:list) {
			System.out.println(ls);
		}
	}

}

报错如下:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 

      The method add(int, String) in the type ArrayList<String> is not applicable for the arguments (int) at AllTests.Genericity

      Test.main(GenericityTest.java:9)

 

以上!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值