【发布时间】:2018-09-17 12:35:49
【问题描述】:
我在 Kafka 应用程序中使用了以下类:
public abstract class SerdeEnabled< Tse > {
abstract public Serde< Tse > getSerde();
}
public class SerdeUsing< Tsu extends SerdeEnabled > {
public void method() {
Tsu tsu = new Tsu(); // Compile Error: cannot instantiate the type Tsu
Serde< Tsu > serde = tsu.getSerde();
}
}
如前所述,这不会编译。现在,getSerde() 方法不依赖于
其各自类的实例数据,实际上可以是static,除了
事实上,Java 不允许在抽象类(或接口)中使用静态方法。
我想我可以通过让SerdeUsing.method 获取一个 Tsu 实例来强制它工作,
然后用它来调用getSerde,但这看起来很难看。
关于如何获得预期效果的任何建议?
【问题讨论】: