可以在方法声明中定义类型参数,它们在方法的返回类型之前的尖括号中指定。包含泛型方法声明的类型不必是通用类型。可以在非静态方法声明中使用为泛型类型指定的类型参数。
示例
以下代码显示如何为方法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) { } } |
使用通用方法
要传递方法的形式类型参数的实际类型参数,必须在方法调用中的点和方法名之间的尖括号<>
中指定它。