![](/img/trans.png)
[英]How do I enforce a child class from an abstract class to implement a static method
[英]How do I constrain a class to implement a particular static method?
我在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
,来getSerde
,但这似乎很丑陋。
关于如何获得预期效果的任何建议?
因此,可以将getSerde()方法提取为接口作为静态方法,并使SerdeEnabled实现此接口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.