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

时间:2015-05-19 08:09:18

标签: java class methods

public class Class{
   public void method(class a, class b){
      //some stuff
   }
}

我想要的是ab可以是任何类的实例。这在java中是否合法?有没有办法做到这一点?

感谢。

3 个答案:

答案 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;
   }
}