public class Class{
public void method(class a, class b){
//some stuff
}
}
我想要的是a
和b
可以是任何类的实例。这在java中是否合法?有没有办法做到这一点?
感谢。
答案 0 :(得分:9)
使用对象。 Java中的任何类都是Object的(直接或间接)子类。
public class MyClass {
public void method(Object a, Object b){
//some stuff
}
}
哦,不要使用班级名称“Class”。它已经在Java中使用了。
答案 1 :(得分:5)
您的代码不合法,因为class
是java中的关键字,请参阅JLS 3.9. Keywords
USe可以使用JLS 4.3.2. The Class Object
中的Object
课程
Object类是所有其他类的超类(第8.1.4节)。
使用以下内容:
public class Class{
public void method(Object a, Object b){
//some stuff
}
}
答案 2 :(得分:4)
考虑使用泛型:
public class Class{
public <T1, T2> void method(T1 a, T2 b){
//some stuff
}
}
如果您需要返回类型与参数类型相关的内容,您可以像这样:
public class Class{
public <T1, T2> Map<T1, T2> toMap(T1 key, T2 val){
Map<T1, T2> out = new HashMap<>();
out.put(key, value);
return out;
}
}