# DrJava: Variablen sind angeblich final



## techniker (24. Feb 2012)

Hallo Leute,

in der Uni hab ich momentan eine Einführung in die Informatik, da geht es um Java. Unsere IDE heißt "DrJava", das scheinen aber nicht viele Leute zu kennen. Wundert mich auch irgendwie nicht, wenn ich mir anschaue, was ich damit für Probleme habe...

Solange ich auf meinem Netbook Ubuntu hatte, lief da alles ohne Probleme. Aber es auf dem PC mit Win7 zum laufen zu bekommen ist ein einziger Krampf. Mein erstes Problem war, dass die Stable-Version von DrJava partout keinen Compiler auf meinem PC finden wollte. Das habe ich nun erledigt, indem ich die Beta-Version nutze.

Aber, und jetzt kommts: Ich schreibe ein total simples, kleines Programm, mit einer Variablen namens i. Will ich in einer Schleife nun i ändern lassen, geht das aber nicht, weil es angeblich eine final Variable sein soll?

Mein Quellcode, das Ganze wird vom Programm in einer .dj-Datei gespeichert:


```
class BreakContinue {
  public static void main (String[] args) {
    for (int i = 0; i < 10; i++) {
      if (i == 3) {
        continue;
      }
      if (i == 7) {
        break;
      }
      System.out.println("i = " + i);
    }
  }
}
```


Was der Compiler daraus in einer .java macht:

```
// Language Level Converter line number map: dj*->java. Entries: 13
//     1->4         2->5         3->6         4->7         5->8         6->9         7->10        8->11   
//     9->12       10->13       11->14       12->15       13->16   
class BuC {
  public static void main (final String[] args) {
    for (final int i = 0; i < 10; i++) {
      if (i == 3) {
        continue;
      }
      if (i == 7) {
        break;
      }
      System.out.println("i = " + i);
    }
  }

  /** This method is automatically generated by the Language Level Converter. */
  public BuC() {
    super();
  }

  /** This method is automatically generated by the Language Level Converter. */
  public java.lang.String toString() {
    return getClass().getName() + "(" + 
        ")";
  }

  /** This method is automatically generated by the Language Level Converter. */
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    else if ((o == null) || (! o.getClass().equals(getClass()))) {
      return false;
    }
    else {
      BuC cast = ((BuC) o);
      return true;
    }
  }

  /** This method is automatically generated by the Language Level Converter. */
  public int hashCode() {
    return getClass().hashCode();
  }
}
```



> 1 error found:
> File: C:\Users\milan\Dropbox\Uni\WS 11-12\EINI\Übungen\Übungsprogramme\BuC.java  [line: 6]
> Error: cannot assign a value to final variable i




Wäre toll, wenn mir jemand helfen könnte :/



Dank und Grüße



techniker


----------



## Tobse (24. Feb 2012)

Benutzt ne andere IDE wie NetBeans, Eclipse, JCreator, ... da git unendlich viele. Das ist ja schreklich. Man kann doch nicht eine zählervariable final machen?! Was sagt dein Prof eig. dazu? Ich find das grausam, sowas einem einsteiger zuzumuten.


----------



## techniker (24. Feb 2012)

Ich weiß nicht, ich scheine wohl der Einzige mit dem Problem zu sein.  Ich sitz an dem S***** schon seit zwei Tagen und am nächsten Mittwoch ist die Klausur... Meinem Prof scheint das Problem auch nicht bekannt zu sein. Ich könnte ja mal probieren, ihm ne Mail zu schicken, er ist ein supernetter Typ. Aber ob er mir da weiterhelfen kann?

Wär echt top, wenn jemand nen kleinen Schalter wüsste, den ich umlegen muss - und anschließend funktioniert dann alles, wie es soll.


----------



## Tobse (24. Feb 2012)

Schreibt ihm das mal und frag ob du z.B. Notepad++ benutzen darfst und dann deine Java-Dateien in der Klausur selbst compilieren, weil DrJava bei dir nicht funzt.


----------



## techniker (24. Feb 2012)

Ich habe NICHTS geändert... Plötzlich geht's. :autsch: Ich meine, ja, das Ergebnis ist zwar toll. Aber dafür, dass ich da jetzt so lange dran gesessen hab, ist das nicht wirklich ein Erfolg. Vor allem, weil mir das jederzeit wieder passieren kann.


----------



## Tobse (24. Feb 2012)

Um so bessser wenn du dich gleich an eine IDE gewöhnst, mit welcher, sowohl auf Windows als auf auf Linux, sowas nicht passiert.
Ich habe z.B. in NetBeans sicherlich meherere 10.000 Zeilen Code verfasst (zwar nicht nur java, aber egal) und hatte dabei *nie* ein problem.


----------

