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

Len*_*Bru 1 java generics class

我想编写一个需要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);

}
Run Code Online (Sandbox Code Playgroud)

这种类型的invokation是我想要实现的,我如何定义"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;
}
Run Code Online (Sandbox Code Playgroud)

和它在使用过的类中的调用

User user =   User.fromJSON(json,User.class);
Run Code Online (Sandbox Code Playgroud)

我想把"fromJSON"方法放到一些utils类中,因为在每个类中它都完全相同,它返回的类名不同

我怎么做?

Roh*_*ain 10

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

public void myFunction(Class<?> something1, SomeOtherType something2)
Run Code Online (Sandbox Code Playgroud)

你应该通过Reflection Tutorial