NetBeans Certified Engineer
Gleich zu Beginn dieses neuen Blogs muss ich einmal ein bischen angeben. Seit gestern bin ich ein “NetBeans Certified Engineer“.
Eingebracht hat mir das eigentlich nur die Tatsache, dass ich immernoch dem Java Editor von Eclipse nach trauere. Auch wenn die NetBeans Platform an sich recht nett ist und ich mittlerweile auch die NetBeans IDE ganz ok finde, hinkt der Java Editor von NetBeans immernoch um Meilen der Entsprechung innerhalb der Eclipse IDE hinterher. Selbst mit Version 6.8 von NetBeans kann immer noch nicht das, was der Eclipse Editor in Version 3.2 schon konnte. Das Refactoring in NetBeans ist schon ganz Nett, aber nichts im Vergleich zu Eclipse.
Aber bevor ich hier weiter abschweife wieder zum Thema. Die Funktion “Fix Imports” von NetBeans funktioniert gut und macht genau das, was der Titel verrät. Fehlende Imports werden hinzugefügt und überzählige aus der Liste entfernt. Die Neue Einträge werden alphabetisch sortiert in die Liste aufgenommen. Solange man jetzt nicht manuell in den Imports rumpfuscht ist an dieser Tatsache nichts auszusetzen.
Allerdings hat mein persönlicher Geschmack (und auch unsere Programmierrichtlinien) verbietet es die Pakete mit dem Präfix de.rwthaachen... in der Importliste vor denen aus z.B. javax.swing... stehen zu sehen. Also gehe ich oft hin und sortiere die Importanweisungen manuell um und “gruppiere” sie nach etwas “logischeren” Gesichtspunkten neu. Allerdings bringt genau dieses Umsortieren die Funktione “Fix Imports” völlig durcheinander. Der Versuch die neuen Importanweisungen in die schon vorhandene Liste einzutragen scheitert daran, dass die Liste nicht mehr alphabetisch sortiert ist. Als Folge werden die neuen Anweisungen “irgendwo” eingeführt und die Liste der Imports hoffnunslos unübersichtlich wird.
In Eclipse kann die Funktion “Fix Imports” etwas mehr. Hier lässt sich in den Optionen eine Reihenfolge der “Standardpakete” definieren. Diese Definitionen werden auch vom automatischen Formatierer genutzt um die Importgruppen voneinander mit einer Leerzeile zu trennen. Sauber sortierte Importe.
Nachdem ich vergeblich darauf gewartet habe, dass irgendwer anderes diese Funktion auch in NetBeans einbaut, habe ich mich vor ‘nem guten Monat selber an die Sache herangewagt. Das Ergebnis habe ich dann im NetBeans Plugin Portal hochgeladen und keine zwei Stunden später bekam ich eine Einladung zu einem Email Interview von Geertjan Wielenga aus dem dann der Artikel auf dzone.com entstand.
Das Zertifikat ist unterwegs inklusve einer kleinen Überraschung. Ich bin mal gespannt.
Moin Jens!
Es gab in älteren NetBeans-Versionen schon mal die Möglichkeit Imports zu organisieren. Leider ist sie Funktion bei einigen Umstellungen der Architektur raus gefallen. Schön, dass Du sie wieder implementiert hast.
Mich würde interessieren, welche Eclipse Editor Funktionen Du vermisst (unabhängig vom Refactoring). Mir erschien der Java-Editor von NetBeans immer stringenter als der von Eclipe und das kann wieder daran liegen, dass man etwas anderes gewohnt ist
31.8 bis 2.9. haben wir auf den Source Talk Tagen 2010 wieder ein 2-tägiges Einführungs-Training zur NetBeans-RCP Platform. Ich hoffe es wird wieder so ein großer Erfolg.
Beste Grüße,
Josch.
Hi Josch
Ich gebe zu, das der Java Editor in NetBeans immer besser wird. Die Codevorschläge sind brauchbar und die “Code Completion” erfüllt seinen Zweck. Was ich an dem Eclipse Editor so toll finde ist, dass er an fast keiner Stelle beim Programmieren sagt: “Da ist was falsch.”, sonder eigentlich immer “Hey, du hast da entweder einen Tippfehler oder wolltest etwas ändern, soll ich das für dich korrigieren?”
Habe ich zum Beispiel eine Methode
2
3
4
public void addElement(Object e) {
interneList.add(e);
}
und schreibe ein return vor den Befehl in der Methode
2
3
4
public void addElement(Object e) {
return interneList.add(e);
}
sagt mir NetBeans lediglich: “Das return ist da falsch in diesem Context”. Eclipse sagt: “Hey, du hast da ein return zu viel. Möchtest du den Rückgabewert der Methode in boolean umändern oder soll ich das return löschen.”
Oder: Zum Beispiel könnte ich an anderer Stelle diese Methode aufrufen wollen und schreibe:
2
addElement(new Object(), force);
. NetBeans schlägt mir nur vor eine neue Methode addElement mit zwei Argumenten zu generieren. Eclipse fragt, ob er eine neue Methode erzeugen soll oder einfach einen zweiten Parameter an die bestehende Methode anzuhängen.
Es gibt viele solcher Situationen in denen ich die Signaturen von Methoden an den Stellen ändern möchte an denen ich sie benutze, weil mir einfällt, dass der Rückgabewert doch falsch war oder die Methode vielleicht doch andere Parameter haben soll.
Solche Beispiele sind noch einige mehr zu finden.
Moin!
Das sind zwei nette Features, die mir so noch nicht aufgefallen sind, dass sie mir fehlen könnten. Aber wenn man damit gearbeitet hat, vermisst man es bestimmt.
Hm, sollte man mal nachbauen. Ein Tutorial für das Erstellen von Hint-Prozessoren findet man hier:
http://platform.netbeans.org/tutorials/nbm-java-hint.html
Leider sieht man nicht, wie man ein Fix implementiert. Aber im hg.netbeans.org kann man bestimmt Beispiele finden. Zum Beispiel hier:
http://hg.netbeans.org/release68/file/a14961f24ab9/java.hints/src/org/netbeans/modules/java/hints
Sehr übersichtlich ist AddOverrideAnnotation.java
Beste Grüße,
Josch.
[...] habe ein kleines Update von meinem Organize Import Modul in das NetBeans Plugin Portal [...]