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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage