任何类的实例作为java中方法的输入

nom*_*nom 4 java methods class

public class Class{
   public void method(class a, class b){
      //some stuff
   }
}
Run Code Online (Sandbox Code Playgroud)

我想要的是,a并且b可以是任何类的实例.这在java中是否合法?有没有办法做到这一点?

谢谢.

Era*_*ran 9

使用对象.Java中的任何类都是Object的(直接或间接)子类.

public class MyClass {
   public void method(Object a, Object b){
      //some stuff
   }
}
Run Code Online (Sandbox Code Playgroud)

哦,不要使用类名"Class".它已经在Java中使用了.


Sum*_*ngh 5

您的给定代码不合法​​,因为classjava中的关键字请参阅JLS 3.9.关键词

USe可以使用JLS 4.3.2中的Object类.类对象

Object类是所有其他类的超类(第8.1.4节).

使用以下:

public class Class{
   public void method(Object a, Object b){
      //some stuff
   }
}
Run Code Online (Sandbox Code Playgroud)


Fil*_*zak 5

考虑使用泛型:

public class Class{
   public <T1, T2> void method(T1 a, T2 b){
      //some stuff
   }
}
Run Code Online (Sandbox Code Playgroud)

如果您需要返回类型与参数类型相关的内容,您可以这样做:

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;
   }
}
Run Code Online (Sandbox Code Playgroud)