从泛型类java调用静态方法
我想调用继承的泛型类的静态方法,请参见下面的java代码。我怎样才能做到这一点
public class DataLoader<T extends SuperObject> extends AsyncTask<Void, Void, Void> {
@Override
protected void doInBackground(Void... params) {
//here I want to call static method get() of T
}
}
public abstract class SuperObject {
}
public class SomeObject extends SuperObject {
public static String get() {
return "string";
}
}
方法get()
将位于扩展SuperObject类的每个类中
# 1 楼答案
不幸的是,您不能直接调用DataLoader类的类型参数t上的方法。 我建议以下几种可能的解决方案:
将T的实例传递给方法doInBackground(),并对其调用方法。 比如
如果方法在超类中声明:SuperObject,则直接以静态方式在超类上调用该方法。staticMethodName(…)
# 2 楼答案
我对你的课程没什么改变。以下是你如何做到这一点
因为SuperObject是一个父类,所以它里面应该有一个静态方法