2013-08-17 14 views
7

Gibt es eine Möglichkeit, meine eigenen Kompilierungsfehler für Eclipse zu definieren? Ich möchte Kompilierungsfehler auslösen, wenn bestimmte Objekte nicht instanziiert werden.Kann ich meine eigenen Fehler in Eclipse definieren?

Um Ihnen genau das, was ich tun möchte:

Ich habe eine Assets-Klasse, die für alle Ressourcen (Bilder, Sounds, etc.) null Variablen hält und eine LoadingScreen Klasse, die alle diese Ressourcenobjekte initialisiert. Wenn ich der Klasse Assets eine Ressource hinzufüge, aber nicht der Klasse LoadingScreen, wird die gesamte Anwendung durcheinander gebracht. Ich möchte einen Fehler in Eclipse sehen, wenn die Variablen in der Assets Klasse nicht auch in LoadingScreen initialisiert werden.

Ist das möglich?

+3

Sie können dies tun. Sie müssen ein Eclipse-Plugin dafür schreiben. Ich bin nicht vertraut mit Eclipse-Entwicklung, aber Sie müssen wahrscheinlich einen Builder schreiben und müssen möglicherweise auch eine neue Facette erstellen. Für ein anständiges Projekt könnte es besser sein, Maven auf jeden Fall zu benutzen und dies als Mojo umzusetzen. – chrylis

+0

Nun, Eclipse gibt eine Warnung aus, wenn Sie vergessen, ein Objekt zu instanziieren, aber ein Fehler tritt zur Laufzeit auf. Sie können es jedoch als Fehler konfigurieren. Siehe [hier] (http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fcompiler%2Fref-preferences-errors-warnings. htm), um Eclipse-Einstellungen zu öffnen und "Null-Pointer-Zugriff" als Fehler zu konfigurieren. – gparyani

+1

Ich würde Eclipse für diese Aufgabe nicht verwenden, aber versuche einen Quellcodeanalysator als [PMD] (http://pmd.sourceforge.net/) oder [Checkstyle] (http://checkstyle.sourceforge.net/) zu verwenden. . – LaurentG

Antwort

1

Ich stimme LaurentG zu, ich denke, Sie sollten dieses Problem auf Java-Ebene lösen. Zum Beispiel könnten Sie eine Methode haben, die am Ende einige abschließende Überprüfungen durchführt, bei denen Sie prüfen würden, ob Ihre Ressourcen einen Null-Zeiger haben, und eine benutzerdefinierte Ausnahme auslösen, wenn Sie eine erkennen.

if (resourceObject==null) { 
throw new CustomException("Null pointer for resource object detected"); 
} 

public class CustomException extends Exception { 
    public CustomException (String errorMsg) { 
    super(errorMsg); 
    } 
} 

Allerdings gibt es zu viele Unbekannte, um eine wirklich genaue und genaue Antwort zu geben. Irgendein Code würde definitiv helfen.

1

Ich denke, Sie können ein neues Plugin erstellen oder jdt ändern. Die Fehler werden beim Kompilieren mit dem Eclipse-Batch-Compiler erkannt. Sie sollten sich this und this ansehen.

Verwandte Themen