|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
[java] problema di inizializzazione
Ciao ragazzi non capisco perchè il compilatore mi dice che non ho inizializzato la variabile A quando nell if faccio A = new Torre(...);
Codice:
Torre A ;
while(scanner.hasNextLine()){
.......
if (stringa[0].equals("C")){
A = new Torre(stringa[1]);
.........}
if (stringa[0].equals("+") && torreOn){
...............{
A.addBlocco(new Jolly(Integer.parseInt(stringa[1])));
..........
}else{if (A.addBlocco(new Regolare(Integer.parseInt(stringa[1]),stringa[2])))
.....}
}
Codice:
javac Esercizio1.java
Esercizio1.java:21: error: variable A might not have been initialized
A.addBlocco(new Jolly(Integer.parseInt(stringa[1])));
^
Esercizio1.java:23: error: variable A might not have been initialized
}else{if (A.addBlocco(new Regolare(Integer.parseInt(stringa[1]),stringa[
2])))
^
Esercizio1.java:31: error: variable A might not have been initialized
System.out.println("TORRE " +A.getNome());
^
|
|
|
|
|
|
#2 |
|
Messaggi: n/a
|
puoi mettere la definizione di classe Torre?
magari nel costruttore.....cè il problema |
|
|
|
#3 |
|
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
Codice:
public class Torre{
.....
public Torre(String n){
nomeTorre=n;
}
public Torre(String n, Blocco c){
this(n); blocco=c;
}
//metodi
......
Se ho fatto qualche cavolata mi scuso ma non sono molto esperto |
|
|
|
|
|
#4 |
|
Messaggi: n/a
|
aimè non sono esperto nemmeno troppo io
non è che se stringa[0].equals("C")) stringa[1] è missing? |
|
|
|
#5 |
|
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
missing cioè??
|
|
|
|
|
|
#6 |
|
Messaggi: n/a
|
perdonami
null |
|
|
|
#7 |
|
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
No non è null...
Gli passo un file da cmd con la riedizione(java es1<prova.txt) e e mi riempe l array.. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
Il compilatore ti dice che la variabile "potrebbe" non essere inizializzata, questo perché l'inizializzazione avviene in un ramo che potrebbe non essere eseguito (per quanto il compilatore è in grado di supporre).
Se sei sicuro che poi in esecuzione la variabile verrà sempre inizializzata puoi risolvere semplicemente inizializzando a null la variabile A quando la dichiari: Torre A = null; |
|
|
|
|
|
#9 |
|
Messaggi: n/a
|
ok mi è chiaro forse......
Local variable should be assigned in all possible flows, otherwise it is compiletime error. prova a dare un valore di default ad A insomma inizializzala in ogni caso..... |
|
|
|
#10 |
|
Messaggi: n/a
|
nooooooo wingman mi hai fregato sul tempo
uff uff ci ero arrivato |
|
|
|
#11 |
|
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
Ssisi sono sicuro che viene eseguito...
ho provato e va.. grazie a entrambi...
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
eheh
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
se sei sicuro che viene eseguito perchè fai l'if?
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
|
|
|
|
#14 |
|
Junior Member
Iscritto dal: Feb 2015
Messaggi: 10
|
Metto l'if perchè è dentro a un while e non voglio che venga eseguito ogni volta...
Se non viene eseguito quel pezzo li neanche altre parti del codice vengono eseguite che riguardano la variabile A.. però sono sicuro che almeno una volta nell esecuzione la variabile A viene usata altrimenti il programma non avrebbe senso... Se hai altri solouzioni più pratiche illuminami
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
Quote:
Codice:
Torre a = null;
while (...) {
if (a == null) {
a = new Torre();
}
}
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:23.




















