任何 class 的实例作为 java 中方法的输入
Instance of any class as input of a method in java
public class Class{
public void method(class a, class b){
//some stuff
}
}
我想要的是 a
和 b
可以是任何 class 的实例。这在 java 中合法吗?有什么办法吗?
谢谢。
使用对象。 Java 中的任何 class 都是 Object.
的(直接或间接)子class
public class MyClass {
public void method(Object a, Object b){
//some stuff
}
}
哦,不要使用 class 名称 "Class"。它已在 Java.
中使用
您提供的代码不合法,因为 class
是 java 中的关键字,请参阅 JLS 3.9. Keywords
USe 可以使用 Object
class 从 JLS 4.3.2. The Class Object
The class Object is a superclass (§8.1.4) of all other classes.
使用以下内容:
public class Class{
public void method(Object a, Object b){
//some stuff
}
}
考虑使用泛型:
public class Class{
public <T1, T2> void method(T1 a, T2 b){
//some stuff
}
}
如果您需要 return 类型与参数类型相关联的东西,您可以像这样:
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;
}
}
public class Class{
public void method(class a, class b){
//some stuff
}
}
我想要的是 a
和 b
可以是任何 class 的实例。这在 java 中合法吗?有什么办法吗?
谢谢。
使用对象。 Java 中的任何 class 都是 Object.
的(直接或间接)子classpublic class MyClass {
public void method(Object a, Object b){
//some stuff
}
}
哦,不要使用 class 名称 "Class"。它已在 Java.
中使用您提供的代码不合法,因为 class
是 java 中的关键字,请参阅 JLS 3.9. Keywords
USe 可以使用 Object
class 从 JLS 4.3.2. The Class Object
The class Object is a superclass (§8.1.4) of all other classes.
使用以下内容:
public class Class{
public void method(Object a, Object b){
//some stuff
}
}
考虑使用泛型:
public class Class{
public <T1, T2> void method(T1 a, T2 b){
//some stuff
}
}
如果您需要 return 类型与参数类型相关联的东西,您可以像这样:
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;
}
}