Newsgroup: it.comp.java
Titolo: soluzione per pagina jsp

<% 
int numerino; 
int a= 8; 
int b= 18; 
if(a==b) 
numerino=99+a; 
out.println(numerino); 
%> 
Una pagina simile mi da l'errore 
variable numerino might not have been initialized. 
Io potrei inizilizzarla scrivendo all'inizio 
int numerino=0; 
o qualcosa di simile 
a quel punto se la condizione dell'if non si verificasse mi verrebbe 
stampato a video lo 0 
mentre io a video non vorrei vedere nulla 
una soluzione sarebbe 
if(a==b) 
{ 
numerino=99+a; 
out.println(numerino); 
} 
ma non è detto che io possa scrivere quelle 2 istruzioni in maniera 
sequenziale, magari tra le 2 ho da mettere dell'altro codice. 
unaltra soluzione: 
<% 
String stringhetta=""; 
int numerino=0; 
int a= 8; 
int b= 18; 
if(a==b) 
{ 
numerino=99+a; 
stringhetta= Integer.toString(numerino); 
} 
else 
{ 
stringhetta=""; 
} 
out.println(stringhetta); 
ma non mi convince. 
qcuno ha qualche idea unpo'+elegante??? 
grazie 
%>

 out.println(99+a);
non ti va bene?

>	 out.println(99+a);
Saluti,
AAA

out.println(stringhetta); 
Saluti,
AAA

 e se scrivi così;


cioè nulla.
Ti chiedo scusa, ma il tuo punto di partenza è sbagliato :-)
Qualsiasi variabile è fisicamente legata (con il suo indirizzo) ad
almeno un'allocazione di memoria che contiene _sempre_ qualcosa.
Anche una stringa vuota in realtà no lo è: contiene il carattere di
fine stringa (solitamente \0). A maggior ragione un intero!
Una variabile 
- si istanzia (le sono assegnati una zona di memoria e l'indirizzo
relativo) e 
- si inizializza (si inserisce un valore iniziale, altrimenti ha un
valore casuale dovuto ad un precedente utilizzo o anche alla sola
accensione del computer). Tale valore assegnato puo' poi essere
utilizzato per verificare l'avvenuto assegnamento.
Per es. se la variavile "count" intera ha la funzione di contatore, la
condizione (count!=0) indica se è avvenuto almeno un evento.
Saluti,
AAA

 AAA

 fine stringa (solitamente \0).
Temo tu stia facendo confusione con il C. In java le stringe non sono 
affatto terminate da un caratattere (sia esso \0 o qualunque altra 
cosa). In Java una stringa vuota è una stringa di lunghezza 0 e basta 
(la classe java.lang.String memorizza sia il contenuto che la lunghezza 
della stringa).
Il parallelismo (che forse era tua intenzione fare) fra String e int non 
è corretto in quanto in Java non esistono variabili di tipo stringa ma 
solo variabili di tipo reference a istance della classe String. La 
differenza non è da poco.
Tanto per fare un esempio tutti i reference una variabile di tipo 
reference può assumere il valore null (che non è "non inzializzata", ma 
un valore ben preciso), mentre tale valore non ha alcun significato per 
le variabili di tipo primitivo (int, char, byte, long, double, float, 
boolean se non ho dimenticato nessuno).
In ogni caso, come hai detto, una variabile (sia essa di tipo primitivo 
o reference) non può essere vuota, in quanto essa corrisponde ad una 
locazione di memoria che un valore deve contenere.
In linguaggi tipo il C si avrebbe la possibilità di non inizializzare il 
valore di una variabile e il risultato sarebbe un valore casuale (non 
"niente").
In java questa cosa viene impedita dal compilatore che segnala come 
errori i tentativi di usare una variabile che potrebbe non essere 
inizializzata.
Andrea

> String stringhetta = a==b ?  Integer.toString(99+a) : ""; 
per una soluzione piu' elegante da te richiesta.
Saluti,
AAA

In java le stringe non sono [...]
Sapevo che avrei scritto delle imprecisioni...
In ogni caso, la classe ha variabili membro (ovvero i reference?) che
contengono delle informazioni, come la lunghezza 0 per una stringa
vuota.
Saluti,
AAA

...
