【发布时间】:2012-04-07 12:16:28
【问题描述】:
我正在开发一个 SPI,并希望定义一个 Reportable 接口,以便任何实现都必须将 toString() 覆盖为有意义的东西。
在 Java 中是否有任何方法可以编写一个接口,使其任何具体实现必须覆盖 Object 的 toString()?例如:
public interface Reportable
{
public String toString();
}
public class Widget implements Fizz, Buzz, Reportable
{
// ...
@Override
public String toString()
{
// ...
}
}
我知道上面的代码不会强制这种行为,但这是我正在寻找的一个例子,即如果Widget 没有覆盖toString() 你得到编译错误,因为它违反了接口契约。
【问题讨论】:
-
Force a class to override the .equals method 的可能副本。任何方法都应该是相同的。
标签: java inheritance overriding tostring