PDA

Visualizza la versione completa : [JAVA]problemi di inizializzazione


cielo81
12-01-2004, 22:00
ho un metodo main
dichiaro 2 variabili di tipo Time(per esempio)
Time t1 = new Time(ore, minuti);
Time t2;
questa variabile t2 la inizializzo in un IF con la variabile Time t1;

ora se voglio utilizzare un metodo print della classe Time che ho creato utilizzando t2, se lo utilizzo all'interno dell'IF mi funziona altrimenti mi dice:

"Test.java": Error #: 553 : variable prima might not have been initialized at line 30, column 9

perchè??

mauri@como
12-01-2004, 22:46
perchè come dici tu la variabile t2 viene inizializzata se e solo se il predicato dell'if è true; se per caso if(.) fosse false, t2 non sarebbe inizializzata e se ti fosse consentito utilizzarla in altre parti di programma, avresti un errore a run-time.

LeleFT
12-01-2004, 23:46
Si può ovviare a questo problema inizializzandole prima entrambe a null.

Ovviamente, quando devi utilizzarle, se non sei certo della loro inizializzazione (lo fai all'interno di un if, quindi non ne sei certo), devi prima controllare che non siano null


Timer t1 = null;
Timer t2 = null;

...

if ( <condizione>) {
t1 = new Timer(...);
t2 = new Timer(...);
}

...

public void print() {
if (t1 != null) {
t1.start(); // Lo uso solo se non è null
}
...
if (t2 != null) {
t2.start(); // Lo uso solo se non è null
}
}

Così il compilatore non ti dovrebbe dare problemi.


Ciao.

Loading