Cannot refer to a non-final variable settings inside an inner class defined in a different method

XFlipX

Aktives Mitglied
Hallo,

folgender Sachverhalt führt zur obiger Fehlermerldung:

Java:
public SettingsDlg(ModelClass modelClass, Settings settings)
	{
		//Übergabe der Referenzen der Instanzen an lokale Objektvariablen
		this.modelClass = modelClass;
		this.settings = settings;
......

         settingsBtnPnl.getOkBtn().addActionListener(
		new ActionListener()
		{
			public void actionPerformed(ActionEvent event)
			{
				settings.writeSettings();
				dirEdit.searchFiles();
				settingsDlg.setVisible(false);
				settingsDlg.dispose();
			}		
		}
	);

Innerhalb der anonymen Klasse "ActionListener" in der Methode "actionPerformed" meckert der Compiler über das "settings" und bringt die Fehlermeldung, die im Titel meines Posts steht. Irgendwie bin ich aber nicht ganz schlau daraus geworden, was im Einzelnen hinter dieser Fehlermeldung steht.

Danke, XFlipX
 

Landei

Top Contributor
Schreib
Java:
public SettingsDlg(ModelClass modelClass, final Settings settings)
und es sollte gehen.
 

Foermchen82

Top Contributor
Das funktioniert zwar, aber immer alles als final machen ist auch nicht so ganz hübsch.

So wie ich das sehe wird der MethodenParameter in eine KlassenVariable geschrieben. Dann kann doch die dann gleich verwendet werden im Listener. Damit die nun nicht final sein muss, greift man folgendermaßen darauf zu:

Java:
Klassenname.this.settings
 

XFlipX

Aktives Mitglied
Danke für die Hilfe. Ich war auch etwas skeptisch bezüglich final aber im Endeffekt ist "settings" ja nur eine Referenz auf die Instanz der Klasse Settings. Ob ich die nun als Konstante deklariere ist hier eher unerheblich.

XFlipX
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Erwin82a Object cannot be converted to Custom Class in Lampda Expression Allgemeine Java-Themen 2
B Type mismatch: cannot convert from Graph.Edge to ArrayList<Graph.Edge> Allgemeine Java-Themen 21
D Selenium - cannot find Chrome binary Allgemeine Java-Themen 6
bueseb84 Java : Cannot find Symbol Allgemeine Java-Themen 7
Kirby.exe Cannot make a static reference to the non-static field rimWidth Allgemeine Java-Themen 12
S class path resource [config.properties}] cannot be opened because it does not exist Allgemeine Java-Themen 4
A Variablen non-static variable cannot be referenced from a static content Allgemeine Java-Themen 4
C Compiler-Fehler Cannot find symbol bei Hat-Beziehungen Allgemeine Java-Themen 5
Tarrew RMI Java RMI - com.sun.proxy.$Proxy1 cannot be cast to Funktionen Allgemeine Java-Themen 0
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
R Char cannot be derefenrenced? Allgemeine Java-Themen 14
M Cannot create a generic array of T Allgemeine Java-Themen 5
W Threads Cannot make a static reference.. Allgemeine Java-Themen 13
127.0.0.1 Methodenaufruf -cannot find symbol- Allgemeine Java-Themen 14
S Cannot make a static reference to the non-static field MySecondClass.Points Allgemeine Java-Themen 3
S Type mismatch: cannot convert from Object to float Allgemeine Java-Themen 3
B Cannot find main-claas... Allgemeine Java-Themen 21
P Default constructor cannot handle exception type Allgemeine Java-Themen 6
M cannot be cast to java.lang.Comparable Allgemeine Java-Themen 5
K + cannot be applied Allgemeine Java-Themen 15
Tobse Cannot find symbol : construktor --- Deklariert! Allgemeine Java-Themen 9
D 'InputStreamReader' & 'BufferedReader' führen zu "cannot find symbol"-Fehler Allgemeine Java-Themen 3
B cannot find Symbol Allgemeine Java-Themen 2
K java.io.IOException: Cannot validate certificate for jogl.dll Allgemeine Java-Themen 6
Saxony assert cannot be resolved Allgemeine Java-Themen 5
? Cannot run program + Vista Allgemeine Java-Themen 8
X cannot convert from Object[] to Integer[] Allgemeine Java-Themen 2
B aus java heraus kompillierte Klassen - cannot be resolved Allgemeine Java-Themen 3
G [quote]the type HashMap is not generic; it cannot be paramet Allgemeine Java-Themen 4
R cannot be referenced! Allgemeine Java-Themen 18
R Cannot be referenced. Allgemeine Java-Themen 7
G Kompiler Fehler: cannot resolve symbol: class Allgemeine Java-Themen 4
7 Cannot resolve Symbol keyPressed Allgemeine Java-Themen 3
conan2 "Cannot make a static reference to the non-static field Allgemeine Java-Themen 8
A Fehlermeldung: cannot be resolved Allgemeine Java-Themen 5
G warum operator || cannot be applied to int, double Allgemeine Java-Themen 11
D Probleme mit 'cannot execute runjava.bat' Allgemeine Java-Themen 2
G Fehlermeldung "cannot resolve symbol" Allgemeine Java-Themen 7
V Cannot resolve symbol Allgemeine Java-Themen 7
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
G final "spammen" + bedeutung Allgemeine Java-Themen 14
J Final Method Allgemeine Java-Themen 9
I Java: public final Werte: Gute oder schlechte Praxis? Allgemeine Java-Themen 6
Neumi5694 Interpreter-Fehler final Eigenschaft während Laufzeit geändert Allgemeine Java-Themen 2
J private static final String variable Allgemeine Java-Themen 8
T Enumeration/Static Final/Bitfield Allgemeine Java-Themen 6
M final vor dem parameter eines Konstruktors Allgemeine Java-Themen 1
D Alle Variablen final setzen ? Allgemeine Java-Themen 26
G Synchronization on non final field Allgemeine Java-Themen 10
Z Als Final deklarierte Klasse im Array sortieren Allgemeine Java-Themen 2
G Klasse als final -> Laufzeitverbesserung? Allgemeine Java-Themen 4
T Final Methode dennoch überschreiben! Allgemeine Java-Themen 10
W Innere Klasse und final Allgemeine Java-Themen 11
A Als FINAL deklarieren -> sinnvoll? Allgemeine Java-Themen 16
S 2 Fragen allgemeine fragen zu final und interface Allgemeine Java-Themen 13
S Reflections und final Allgemeine Java-Themen 19
O does not declare a static final serialVersionUID field of . Allgemeine Java-Themen 6
meez immutable final? Allgemeine Java-Themen 23
S Wave Soundausgabe Java 1.4.2 contra 1.5 Final Allgemeine Java-Themen 27
G final und Variablen Allgemeine Java-Themen 16
B Java 5.0 Final Allgemeine Java-Themen 3
M 1.5 final? Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben