【发布时间】:2014-05-30 13:54:07
【问题描述】:
试图从实例类中的抽象类调用静态方法。这是我正在尝试做的原始编码示例,但不知道如何去做。
DataSource myDataSource = new DataSource();
DataAdapterTest.initialize(myDataSource);
public abstract class DataAdapterTest extends DataAdapter {
public static void initialize(DataSource d) {
d.addDataAdapter(DataAdapterTest.class);
}
public static void onCreate() {
does something here
}
}
public class DataSource {
public void addDataAdapter(Class<DataAdapter> c) {
c.onCreate();
}
}
【问题讨论】:
-
IMO,不清楚你的问题是什么。
-
在方法签名中使用抽象类没有问题;唯一真正的问题是不能实例化(即
new)抽象类。 “真正的问题”似乎是关于Class<DataAdapterTest>和Class<DataAdapter>之间的[co] 差异,这实际上与List<String>不能与List<Object>分配的原因相同——无论如何,包括相关的[编译器]错误。 -
Class对象不能以这种方式使用(反射除外,这可能是处理您正在做的任何事情的一种非常混乱的方式)。所以你需要告诉我们更多你想要做什么。
标签: java parameter-passing abstract-class