type
status
date
slug
summary
tags
category
icon
password
Property
通常来说,泛型类一般用在集合类中,例如
ArrayList<T>
,我们很少需要编写泛型类。如果确实需要编写一个泛型类,那么,应该如何编写它?
可以按照以下步骤来编写一个泛型类。
首先,按照某种类型,例如:
String
,来编写类:然后,标记所有的特定类型,这里是
String
最后,把特定类型
String
替换为T
,并申明<T>
:静态方法
编写泛型类时,要特别注意,泛型类型
<T>
不能用于静态方法:编译错误,无法在静态方法
create()
的方法参数和返回类型上使用泛型类型T
可以在
static
修饰符后面加一个<T>
,编译就能通过:实际上,这个
<T>
和Pair<T>
类型的<T>
已经没有任何关系了对于静态方法,可以单独改写为“泛型”方法,只需要使用另一个类型即可。对于上面的
create()
静态方法,应该把它改为另一种泛型类型,例如,<K>
:这样才能清楚地将静态方法的泛型类型和实例类型的泛型类型区分开
多个泛型类型
泛型还可以定义多种类型。例如,我们希望
Pair
不总是存储两个类型一样的对象,就可以使用类型<T, K>
:使用的时候,需要指出两种类型:
Java标准库的
Map<K, V>
就是使用两种泛型类型的例子。它对Key使用一种类型,对Value使用另一种类型。