可以在方法声明中定义类型参数,它们在方法的返回类型之前的尖括号中指定。包含泛型方法声明的类型不必是通用类型。可以在非静态方法声明中使用为泛型类型指定的类型参数。
示例
以下代码显示如何为方法m1()
定义新的类型参数V
。新类型参数V
强制将方法m1()
的第一个和第二个参数必须为相同类型。
第三个参数必须与类型T
相同,这是类实例化的类型。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
class
MyBag<T> {
private
T ref;
public
MyBag(T ref) {
this
.ref = ref;
}
public
T get() {
return
ref;
}
public
void
set(T a) {
this
.ref = a;
}
}
class
Test<T> {
public
<V>
void
m1(MyBag<V> a, MyBag<V> b, T c) {
}
}
|
使用通用方法
要传递方法的形式类型参数的实际类型参数,必须在方法调用中的点和方法名之间的尖括号<>
中指定它。