将类类型传递给方法

6
在Java中,如何将类的类型作为方法的参数传递?
我给出的例子是使用Parse.com Android SDK进行基本查询。
今天我需要做到这一点:
//-- This will fetch the car objects
ParseQuery<CarItem> query = ParseQuery.getQuery(CarItem.class);
query.findInBackground( (FindCallback<CarItem>) callback)

//-- This will fetch the trucks objects
ParseQuery<TruckItem> query = ParseQuery.getQuery(TruckItem.class);
query.findInBackground( (FindCallback<TruckItem>) callback)

我希望能够有一个方法fetchObjectList(),可以传入要获取的对象类型作为参数,并调用正确的callback函数。

public void fetchObjectList( ... classType, ... callback) {

    ParseQuery<classType> query = ParseQuery.getQuery(classType.class);

    query.findInBackground( (FindCallback<classType>) callback);

}

在最终阶段,我希望能够做到这一点:
fetchObjectList(CarItem, callback1);
fetchObjectList(TruckItem, callback2);

谈论泛型? public void fetchObjectList(<T> classType) - NSimon
1
@NicolasSimon,你的代码甚至在语法上都不正确;而且没有回答他所问的问题。他想要传递一个类的类型(类似于ClassName.class或someObject.getClass();因此是Class<T>类型的对象)。 - GhostCat
可以传递那个。public MyClass method1(MyClass obbject) { } - priyank
1个回答

7

看起来你想要类似以下的东西:

public <T> void fetchObjectList(Class<T> classType, FindCallback<T> callback) {
    ParseQuery<T> query = ParseQuery.getQuery(classType);

    query.findInBackground(callback);
}

在Java中,如何将类的类型作为方法参数传递?
要将类的类型作为参数传递,可以执行以下操作:
fetchObjectList(String.class, someCallback);

或者,如果你不知道类型的静态信息,你可以这样做:
fetchObjectList(someObj.getClass(), someCallback);

可以了!只需要像这样扩展ParseObject类:public <T extends ParseObject> void fetchObjectList... - daarthvader

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接