2010-09-29 2 views
14

Non so davvero se questo sia possibile o meno. Ma sto strutturando in un posto dove voglio controllare un valore int è null oppure no, per chiamare metodi diversi.Come verificare se un int non è nullo o vuoto?

C'è un modo per farlo?

In realtà, la variabile proviene da un browser con un valore null. Non riesco a modificare la dichiarazione int su Integer. Perché ha le sue conseguenze.

Qualche suggerimento?

+0

“quella variabile viene da un browser con un valore nullo” - Che cosa vuoi dire con questo? come sottolineato da Bozho, questo è chiaramente impossibile. –

+0

@Konrad Rudolph: Sei in basso votato per questo: "quella variabile proviene da un browser con un valore nullo". Ho risolto il mio problema con l'aiuto della risposta di Bozho "quindi è il convertitore che decide se impostare 0" Yea, Int non può essere nullo ed è impossibile. Ma un convertitore può cambiare il valore nullo in '0' per assegnarlo a una variabile int. Ora dimmi perché hai votato. Cosa c'è di sbagliato con la mia domanda. Sto chiaramente iniziando con "Non so davvero che sia possibile o no". Cosa significa!!! Non so davvero b4 tht ... Pensa due volte b4 giù votando –

+0

Non ho fatto downvot. La tua domanda potrebbe essere stata valida (non posso dirlo, ma non faccio downvoting quando non posso) - Stavo solo chiedendo dei chiarimenti. –

risposta

31

int variabili non possono essere null

Se un null deve essere convertito in int, allora è il convertitore che decide se impostare 0, eccezione tiro, o impostare un altro valore (come Integer.MIN_VALUE). Prova a collegare il tuo convertitore.

0

Eventuali browser restituiscono la rappresentazione di stringa di un valore intero? In realtà int non può essere nullo. Potrebbe essere possibile verificare null, se il valore non è null, quindi trasformare la rappresentazione String in int.

1

se la variabile int è dichiarata come variabile di livello di classe (variabile di istanza), verrà impostata su 0. Tuttavia, ciò non indica se il valore inviato dal client era 0 o null. potrebbe essere si potrebbe avere un metodo setter che potrebbe essere chiamato per inizializzare/impostare il valore inviato dal client. quindi è possibile definire il valore dell'indicatore, potrebbe essere un valore negativo per indicare il valore nullo.

2

Penso che tu stia chiedendo un codice come questo.

int count = (request.getParameter("counter") == null) ? 0 : Integer.parseInt(request.getParameter("counter")); 
-3

Un numero intero non può essere nullo ma esiste un modo molto semplice di fare ciò che si vuole fare. Utilizzare un'istruzione if-then in cui si controlla il valore dell'intero contro tutti i possibili valori.

Esempio:

int x; 

//Some Code... 

if (x<=0 || x>0){ 
    //what you want the code to do if x has a value 
} else { 
    //what you want the code to do if x has no value 
} 

Diniego: Io parto dal presupposto che Java non imposta automaticamente i valori di numeri a 0 se non vede un valore.

+1

I campi hanno il valore predefinito 0; le variabili locali ** devono ** essere assegnate a un valore o il codice non verrà compilato. Quella condizione sarà sempre vera per qualsiasi codice valido. – kiheru

+0

In realtà ha funzionato per me. –

3

Penso che è possibile inizializzare le variabili un valore come -1, perché se le variabili di tipo int non sono inizializzate, non possono essere utilizzate. Quando si desidera verificare se non è il valore desiderato, è possibile verificare se è -1.

0

int non può essere nullo. Se non si assegna alcun valore al valore predefinito int sarà 0. Se si desidera verificare null, quindi int come Integer nella dichiarazione. Quindi l'oggetto intero può essere nullo. Quindi, puoi controllare dove è nullo o no. Anche nella convalida del bean javax non sarà possibile ottenere l'errore per l'annotazione @NotNull finché la variabile non viene dichiarata come Intero.

+0

Questo è davvero un commento, non una risposta. Con un po 'più di ripetizione, [sarai in grado di postare commenti] (// stackoverflow.com/privileges/comment). – manetsus

1
public class Demo { 
    private static int i; 
    private static Integer j; 
    private static int k = -1; 

    public static void main(String[] args) { 
     System.out.println(i+" "+j+" "+k); 
    } 
} 

uscita: 0 -1 nulla