Hallo,
Warum bekomme ich bei der oberen Variante die Fehlermeldung
"Cannot refer to a non-final variable f inside an inner class defined in a different method"
Bei der unteren Version ist f ebenfalls nicht final und trotzdem funktioniert sie.
Warum bekomme ich bei der oberen Variante die Fehlermeldung
"Cannot refer to a non-final variable f inside an inner class defined in a different method"
Bei der unteren Version ist f ebenfalls nicht final und trotzdem funktioniert sie.
Code:
import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class FrameEndeBeispiel { public static void main(String[] args){ Frame f = new Frame(); f.setSize(200,100); f.setVisible(true); f.addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.out.println("Anwendung wird geschlossen"); f.dispose(); } } ); } }
Code:
import java.awt.*; public class FrameEndeBeispiel { public static void main(String[] args){ Frame f = new Frame(); Frame f1 = new Frame(); f.setSize(200,100); f1.setSize(200,100); f.setVisible(true); new FrameEnde1(f); } } **********neue Klasse************************** import java.awt.Frame; import java.awt.event.*; public class FrameEndeAnonym { Frame f; public FrameEndeAnonym(Frame f1){ f=f1; f.addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.out.println("Anwendung wird geschlossen"); f.dispose(); } } ); } }
Comment