java如何约束类来实现特定的静态方法?
我在卡夫卡应用程序中使用了以下类:
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为例来强制实现这一点,
然后用它来调用^{
对于如何达到预期效果有什么建议吗
# 1 楼答案
因此,可以将getSerde()方法作为静态方法提取到接口,并使SerdeEnabled实现该接口