我在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
,但这看起来很难看。
有关如何获得预期效果的任何建议?
答案 0 :(得分:0)
因此可以将getSerde()方法作为静态方法提取到接口,并使SerdeEnabled实现此接口。