PDA

Visualizza la versione completa : (java) errore nel main


abcd1000
16-01-2004, 15:24
Ho il seguente main di un programma java:

public static void main(String[] args) {


javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MyApplication();
if (args != null) <-- errore
OpenFile.openFile(args[0]);
else
OpenFile.openFile(null);

}
});
}
Il compilatore (Eclipse) mi dà il seguente errore:
Cannot refer to a non-final variabile args inside a inner class

Come faccio a risolvere questo problema?

var
16-01-2004, 18:27
prova così:



...
if (args.length>0)
...


ciao

Angelo1974
17-01-2004, 10:35
Ciao. Potresti provare a fare una cosa del genere:

public static void main( String[] args ){

final String[] arg = args;
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run( ) {
new Prova("");
if (arg != null )
OpenFile.openFile(arg[0] );
else
OpenFile.openFile(null);
}
});
}

anx721
17-01-2004, 18:09
Sono necessarie entrambe le correzioni, la prima per verificare che args contenga un elemento (non serve controllare che args non è null, perchè anche se nonci sono argomenti args è comuqnue non null), la seconda per risolvere il problema dato dal compilatore:



public static void main( String[] args ){

final String[] arg = args;
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run( ) {
new Prova("");
if (arg.length>0)
OpenFile.openFile(arg[0] );
else
OpenFile.openFile(null);
}
});
}

Ciao.

Loading