在java中编写需要Class.Class作为参数的函数

在java中编写需要Class.Class作为参数的函数,java,class,generics,Java,Class,Generics,我想写一个需要Class.Class作为参数的函数 例如: class MyObject{ public whatTypeGoesHer MyFunction(something1, something2){ //do something with parameters } } class MyObject1{ MyObject object = new MyObject(); MyObject1 object2 = object.MyFunction(M

我想写一个需要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来接受这种类型的参数

应该是什么而不是什么类型的Goesher

编辑:

让我重新表述一下这个问题

我想使用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;
}
我想把fromJSON方法放到某个utils类中,因为在每个类中,它都是完全相同的,只是返回的类名不同


怎么做?

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


您应该浏览您需要一个Class类型的参数:


你应该仔细检查一下你的意思是这样的吗:

  public <T> void MyFunction(Class<T> something1, SomeOtherType  something2){
  // T= type parameter inside method
  }

你的意思是这样的:

  public <T> void MyFunction(Class<T> something1, SomeOtherType  something2){
  // T= type parameter inside method
  }

参数,而不是参数。参数是MyObject1.class.PS。这不会编译。@JonSkeet。哎呀。固定的谢谢:@Vash:我们不知道OP想要什么东西,这不是Rohit的错…@Vash。嗯,那部分根本不相关。OP感兴趣的是如何将.class作为参数传递。我想他应该知道第二个参数的类型。对象并不总是一个好的猜测。参数,而不是参数。参数是MyObject1.class.PS。这不会编译。@JonSkeet。哎呀。固定的谢谢:@Vash:我们不知道OP想要什么东西,这不是Rohit的错…@Vash。嗯,那部分根本不相关。OP感兴趣的是如何将.class作为参数传递。我想他应该知道第二个参数的类型。对象并不总是一个好的猜测。请注意,根据Java编码风格,方法应该开始使用小写字母。请注意,根据Java编码风格,方法应该开始使用小写字母。您确定吗?T可以在方法内部视为一个类型。请看java通用谢谢!我的方法中缺少声明,这就是为什么它不起作用。我应该得到你们的+1!:你确定吗?T可以在方法内部视为一个类型。请看java通用谢谢!我的方法中缺少声明,这就是为什么它不起作用。我应该得到你们的+1!:
  public <T> void MyFunction(Class<T> something1, SomeOtherType  something2){
  // T= type parameter inside method
  }