2017-02-15 4 views
1

Hallo Ich wollte eine benutzerdefinierte Warnung werfen. Sagen Sie iJava benutzerdefinierte Warnungen

public abstract class A { 

    public void doSomething() { 
     //base functionality 
    } 
} 

public class B extends A { 

    @Override 
    public void doSomething() { 
     super.doSomething(); 
     //extended functionality 
    } 
} 
public class C extends A { 

} 

haben möchte ich einen Fehler für Klasse C werfen, weil es nicht die Methode nicht außer Kraft setzen. Normalerweise würde eine abstrakte Methode ausreichen, aber die Methode enthält die für alle Unterklassen übliche Funktionalität. Wenn es einen besseren Standard oder eine bessere Struktur gibt, lassen Sie es mich bitte wissen.

Ich möchte alle Unterklassen erzwingen, dass bestimmte Verfahren @Override

ich eine benutzerdefinierten Anmerkung in der Schaffung wie public @interface ShouldOverride ausgesehen habe, aber ich kann nicht herausfinden, wie eine Warnung mit, dass zu werfen.

Hinweis. Ich benutze IntelliJ Idea ultimative

+3

Warum nicht für eine andere abstrakte Methode bereitzustellen, die außer Kraft gesetzt werden muss und die von 'doSomething()' genannt wird? Ich würde mich nicht darauf verlassen, dass die IDE diese Einschränkungen erzwingt, da man die Anwendung in einer anderen IDE oder in der Befehlszeile erstellen könnte. Wenn Sie diese Dinge außerhalb des Codes selbst erzwingen müssen, versuchen Sie, eine statische Analyse in Ihren Build einzufügen (die von allen IDEs aufgerufen und von Befehlszeilen-Builds ausgeführt wird). – Thomas

+0

Oh oh rechts. Warum habe ich nicht daran gedacht –

Antwort

1

Umsetzung des Satzes von Thomas:

abstract class A { 

    public void doSomething() { 
     // basic things to do 

     // then call implementation 
     doSomethingImpl(); 
    } 

    protected abstract void doSomethingImpl(); 
} 

class B extends A { 

    @Override 
    protected void doSomethingImpl() { 
     //extended functionality 
    } 
} 

class C extends A { // does not compile 

} 
Verwandte Themen