Java: Entwurfsschnittstelle, um Implementierungen zu zwingen, toString zu überschreiben
Ich entwickle einen SPI und möchte einen definierenReportable
Schnittstelle so, dass alle Implementierungen überschreiben müssentoString()
zu etwas Sinnvollem.
Gibt es in Java eine Möglichkeit, eine Schnittstelle so zu schreiben, dass eine ihrer konkreten ImplementierungenMuss Objekt überschreibentoString()
? Zum Beispiel:
<code>public interface Reportable { public String toString(); } public class Widget implements Fizz, Buzz, Reportable { // ... @Override public String toString() { // ... } } </code>
Ich weiß, dass der obige Code dies nicht tutMacht diese Art von Verhalten, ist aber ein Beispiel für das, wonach ich suche, d. h. wennWidget
überschreibt nichttoString()
Sie erhalten einen Kompilierungsfehler, weil er den Schnittstellenvertrag verletzt.