PDA

View Full Version : [JAVA] Null pointer Exeption


Emaborsa
19-11-2009, 15:38
Ho un problemino su un loop. Il codice è il seguente:

do
gender = JOptionPane.showInputDialog("Insert gender:").charAt(0);
while (!((gender == 'm') || (gender == 'f')));

In poche parole il programma continua solo se viene immessa una m o una f. Il problema si pone se l'utente clicca annulla o ESC. Così facendo vado a invocare charST(0) su gender che però non è niente.
Se lavorassi con string saprei come fare: prima di fare per esempio subString, gli direi di controllare che non sia "null".
Un oggetto di tipo String è "null". Un int di base è 0. un char come lo posso definire?

wizard1993
19-11-2009, 15:45
dichiara gender come Character e a quel punto controlli se è null

banryu79
19-11-2009, 15:50
String input = null;
do {
input = JOptionPane.showInputDialog("Insert gender:");
}
while (isNotValid(input));
gender = input.charAt(0);

...

boolean isNotValid(String sex) {
return sex==null || (! (sex.equalsIgnoreCase("M") || sex.equalsIgnoreCase("F")));
}

Emaborsa
20-11-2009, 13:22
dichiara gender come Character e a quel punto controlli se è null

se imposto char = null; mi da errore, dato che un primitive datatype non può essere null...

Oceans11
20-11-2009, 13:42
se imposto char = null; mi da errore, dato che un primitive datatype non può essere null...

Infatti wizard1993 ti ha suggerito di utilizzare il wrapper Character, non char!
Oppure utilizzi la soluzione proposta da banryu.

Emaborsa
20-11-2009, 14:38
Infatti wizard1993 ti ha suggerito di utilizzare il wrapper Character, non char!

Cavolo è vero....char e Character sono 2 cose diverse. Proverò così.