如何在Java程序中使用泛型

如何在Java程序中使用泛型,第1张

在使用泛型前,存入集合中的元素可以是任何类型的,当从集合中取出时,所有的元素都是Object类型,需要进行向下的强制类型转换,转换到特定的类型。

比如:

List myIntList = new LinkedList()// 1

myIntList.add(new Integer(0))// 2

Integer x = (Integer) myIntList.iterator().next()// 3

第三行的这个强制类型转换可能会引起运行时的错误。

泛型的思想就是由程序员指定类型,这镇弯样集合就只能容纳该类型的元素。

使用泛型:

List<Integer>myIntList = new LinkedList<Integer>()// 1'

myIntList.add(new Integer(0))// 2'

Integer x = myIntList.iterator().next()// 3'

将第三行的强制类型腔空转换变为了第一行的List类型说明,编译器会为我们检查类型的正确性。这样,代码的可读性和健壮性也会增强。

泛型使用基础

例如:

public interface List <E>

{

void add(E x)

Iterator<E>iterator()

}

public interface Iterator<E>

{

E next()

boolean hasNext()

}

尖括号中包含的是形式类型参数(formal type parameters),它们就如同一般的类型一样,可以在整个类的声明中被使用。

当类被使用时,会使用具体的实际类型参数(actual type argument)代替。

比如前面的例子中的List<Integer>,那么所有的E将会被Integer类型所代替。

泛型类型参数只能被类或接御圆闷口类型赋值,不能被原生数据类型赋值,原生数据类型需要使用对应的包装类。

形式类型参数的命名:尽量使用单个的大写字母(有时候多个泛型类型时会加上数字,比如T1,T2),比如许多容器集合使用E,代表element(元素),Map中用K代表键keys,V代表值。

你创建的是一个数据对象而不是ArrayList对象,

把后面的泛型纯侍丛去掉就可谈配了

再者,普通变量名做樱应该小写,尽量不要同java关键字

相同


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11989957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存