1

我想编写一个需要 Class.class 作为参数的函数

例子:

class MyObject{


  public whatTypeGoesHer MyFunction(something1, something2){
//do something with parameters
}

}

class MyObject1{
      MyObject object = new MyObject();

       MyObject1 object2 = object.MyFunction(MyObject1.class,something else);

}

这种类型的调用是我想要实现的,我如何定义“MyFunction”来接受这种类型的参数?

应该用什么代替“whatTypeGoesHere”?

编辑:

让我重新表述这个问题

  1. 我想使用 GSON 从 JSON 反序列化类,但是,我发现自己在每个要反序列化的类中编写完全相同的方法,但类名不同

这是我的代码:

public static User fromJSON(String json, Class<?> className) {
    GsonBuilder builder = new GsonBuilder();
    builder.serializeNulls();
    User g1 = builder.create();
    User user = g1.fromJson(json, className.getClass());
    return user;
}

及其在使用类中的调用

User user =   User.fromJSON(json,User.class);

我想将“fromJSON”方法放到某个 utils 类中,因为在每个类中它都是完全相同的,只是它返回的类名不同

我怎么做?

4

2 回答 2

10

您需要一个类型的参数Class<?>

public void myFunction(Class<?> something1, SomeOtherType something2)

你应该通过反射教程

于 2013-08-01T13:44:37.747 回答
2

你的意思是这样的:

  public <T> void MyFunction(Class<T> something1, SomeOtherType  something2){
  // T= type parameter inside method
  }
于 2013-08-01T13:55:41.220 回答