gpt4 book ai didi

java - 从泛型类java调用静态方法

转载 作者:太空宇宙 更新时间:2023-11-04 13:18:25 25 4
gpt4 key购买 nike

我想调用继承的泛型类的静态方法,请参见下面的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();
    }
  • 如果在父类(super class)中声明了方法,则直接以静态方式调用父类(super class)的方法:SuperObject.staticMethodName(...)

关于java - 从泛型类java调用静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33327147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com