我正在尝试编写一个方法(使用泛型),它接受两个参数并交换它们,但参数可以是任何类型 - int,char,float,String等。以下是我的代码 -
public class SwapTest<K> {
private static void swap(K k, K v) {
K p;
System.out.println("Before swap: a = " + k + " b = " + v);
p = k;
k = v;
v = p;
System.out.println("After swap: a = " + k + " b = " + v);
}
public static void main(String[] args) {
swap(20.5, 30.3);
swap(10, 25);
swap("abc", "xyz");
}
}
但是在方法定义中,它会给出错误 - 无法对非静态类型进行静态引用
我可以使用Object类实现方法定义,如 -
private static void swap(Object k, Object v) { ...}
但我正试图通过泛型实现这一目标。怎么办呢?