在java中编写需要Class.Class作为参数的函数
我想写一个需要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 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
}