NB 8.1 on save/formatierung bug

Alles zur oder um die NetBeans IDE

Moderator: wegus

Benutzeravatar
Olek77
Beiträge: 669
Registriert: 21.03.2009, 13:09

NB 8.1 on save/formatierung bug

Beitragvon Olek77 » 05.12.2015, 17:59

Hi,

ich habe eventuell einen bug gefunden.

Folgende Situation:

Code: Alles auswählen


// ... hier einiges an code der mit /**/ kommentiert wurde

/*
...
*/
// if something
if( ... ) {

   ...

} // 
  // case else ...
  //
  else {

           
            //
            // check
            //
            if ( /* something to check */ ) {
           
            ...
           
            }
           
 }
 


Wenn ich nun auf Alt + Shift + F drücke also formatiere, wird die Klammer nach else entfernt sowie die abschließende Klammer ( die IDE denkt dann es handelt sich um ein else if ).
Das gleiche wenn ich speichere (da ich dann formatiere).

Habe eben mit 8.0.2 getestet und die Klammer wird nicht entfernt :!:

Das beunruhigt ziemlich. Wenn NB nun die Klammerstrukturen so ändert ist man ja nie sicher ob nicht irgendwas falsch geht.
Kann das jemand mal bei sich testen?
Danke.
Viele Grüße,

Olek
- Netbeans Certified Associate -

Benutzeravatar
smurfi
Site Admin
Beiträge: 1615
Registriert: 29.06.2006, 11:33
Wohnort: Wuppertal
Kontaktdaten:

Re: NB 8.1 on save/formatierung bug

Beitragvon smurfi » 06.12.2015, 14:25

Hallo,

ich kann dir leider jetzt auch nicht sagen ob das so gewollt ist, aber ganz falsch ist es ja auch nicht.
Er macht das ja nur, wenn nach der else-Abfrage nur eine if-Abfrage kommt.
Hast du das so, ist alles korrekt

Code: Alles auswählen

    public void test() {
        String a = "Affe";
        String b = "Pferd";
        String c = "Affe";
        String d = "Pferd";

        if (a == a) {
            System.out.println("TEST");
        } else {
            if (c == d) {
                System.out.println("TEST");
            }
            if (a != b) {
                System.out.println("TEST");
            }
        }
    }


Nur wenn du eine if-Abfrage hast macht er das anders....

Code: Alles auswählen

    public void test() {
        String a = "Affe";
        String b = "Pferd";
        String c = "Affe";
        String d = "Pferd";

        if (a == a) {
            System.out.println("TEST");
        } else if (c == d) {
            System.out.println("TEST");
        }
    }


Falsch wird der Code dadurch aber nicht, er spart sich nur ein paar Zeilen.
Wie aber bereits geschrieben, kann ich dir nicht sagen ob es so gewollt ist.

Gruß
Michael

Benutzeravatar
Olek77
Beiträge: 669
Registriert: 21.03.2009, 13:09

Re: NB 8.1 on save/formatierung bug

Beitragvon Olek77 » 07.12.2015, 09:19

Hi Michael,

Falsch wird der Code dadurch aber nicht, er spart sich nur ein paar Zeilen.

Das ist die Frage.

Ich versuche den Fall noch mal genauer zu beschreiben:

Code: Alles auswählen


// Bedingung 1 ist true
if ( wetter == sonnig ) {
...
}
// Bedingung ist false
else {
    // Bedingung 2 - hat nichts mit Bedingung 1 semantisch am Hut
    if( syst em_read ) {
        ...   
    }
   
}


Ich finde in diesem Fall sollte nicht zu einem else if( ... ) umsortiert werden.
Danke für deine Antwort jedenfalls :)

Grüße Olek
- Netbeans Certified Associate -

Benutzeravatar
smurfi
Site Admin
Beiträge: 1615
Registriert: 29.06.2006, 11:33
Wohnort: Wuppertal
Kontaktdaten:

Re: NB 8.1 on save/formatierung bug

Beitragvon smurfi » 08.12.2015, 06:51

Ich habe mich da noch einmal in den Optionen umgesehen, schalte doch mal Special "else_if" Treatment ab.

NetBeans-Option-Bracess.png
NetBeans-Option-Bracess.png (85.28 KiB) 2688 mal betrachtet


Ich denke das ist genau das was du suchst.

Gruß
Michael

Benutzeravatar
nigjo
Beiträge: 584
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: NB 8.1 on save/formatierung bug

Beitragvon nigjo » 08.12.2015, 08:55

smurfi hat geschrieben:Ich habe mich da noch einmal in den Optionen umgesehen, schalte doch mal Special "else_if" Treatment ab.

Die Option gab es vorher auch schon. Die sorgt dafür, dass nicht jedes else ein neuer Block ist (Und somit ggf. mit geschweiften Klammern versehen wird) sondern ein "else if" wie ein "normales" "if" behandelt wird.

Mir ist das hier beschriebene Verhalten auch schon aufgefallen. Es tritt immer dann auch, wenn in einem else-Block nur ein weiterer "if(-else)-Block" steht und keine weitere Anweisung. Dass NetBeans dabei Kommentare ignoriert ist ein schon älteres Problem. Keine Ahnung ob es dazu einen Bug-Eintrag gibt.

Wie schon geschrieben wurde: Falsch wird der Code dadurch nicht. Der Bug wäre höchstens, dass der Kommentar gelöscht wird.

Gruß
Jens
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

Benutzeravatar
Olek77
Beiträge: 669
Registriert: 21.03.2009, 13:09

Re: NB 8.1 on save/formatierung bug

Beitragvon Olek77 » 08.12.2015, 09:58

Hallo,

schalte doch mal Special "else_if" Treatment ab.
Danke! Das war die Ursache :o

Viele Grüße,

Olek
- Netbeans Certified Associate -


Zurück zu „NetBeans - IDE“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste