[英]Calling static method from Generic class 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类的每个类中
不幸的是,您不能直接在类DataLoader的类型参数T上调用方法。 我建议以下可能的解决方案:
将T的实例传递给方法doInBackground()并对其调用方法。 例如
public void doInBackground(T t, Void... params) { t.get(); }
如果在超类中声明了方法,则以静态方式直接调用该方法:SuperObject.staticMethodName(...)
我没改变你的课。 这是您可以实现的方法。
public class DataLoader<T extends SuperObject> extends AsyncTask<Void, Void, Void> {
@Override
protected void doInBackground(Void... params) {
T.get();
}
}
public abstract class SuperObject {
public static String get() {
return "string";
}
}
public class SomeObject extends SuperObject {
}
由于SuperObject是父类,因此应该在其中包含一个静态方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.