web-dev-qa-db-fra.com

Comment vérifier si un int n'est pas nul ou vide?

Je ne sais vraiment pas si cela est possible ou non . Mais je suis coincé dans un endroit où je veux vérifier qu'une valeur int est null ou non, pour appeler des méthodes différentes.

Y a-t-il un moyen de le faire?

En fait, la variable provient d'un navigateur avec une valeur null . Je ne peux pas modifier la déclaration int en Integer. Parce que cela a ses propres conséquences.

Aucune suggestion?

14
user405398

int les variables ne peuvent pas être null

Si un null doit être converti en int, alors c'est le convertisseur qui décide s'il faut définir 0, lever une exception ou définir une autre valeur (comme Integer.MIN_VALUE). Essayez de brancher votre propre convertisseur.

32
Bozho

Je pense que vous pouvez initialiser les variables avec une valeur telle que -1, Si les variables de type int ne sont pas initialisées, elles ne peuvent pas être utilisées . si c'est -1.

3
user5432692

Je pense que vous parlez d'un code comme celui-ci.

int  count = (request.getParameter("counter") == null) ? 0 : Integer.parseInt(request.getParameter("counter"));
2
Dead Programmer

si votre variable int est déclarée en tant que variable de niveau classe (variable d'instance), sa valeur par défaut est 0. Mais cela n'indique pas si la valeur envoyée par le client était 0 ou une valeur nulle. vous pouvez peut-être avoir une méthode de définition qui pourrait être appelée pour initialiser/définir la valeur envoyée par le client. alors vous pouvez définir votre valeur d'indicateur, peut être une certaine valeur négative pour indiquer le null.

1
Siri
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);
    }
}

OutPut: 0 null -1

1
chaitanya

Peut-être le navigateur renvoie-t-il la représentation sous forme de chaîne d'une valeur entière? En fait, int ne peut pas être null. Peut-être pourriez-vous vérifier la valeur null, si la valeur n'est pas nulle, puis transformer la représentation de chaîne en int.

0
Andriy Sholokh

int ne peut pas être nul. Si vous n'attribuez aucune valeur à int, la valeur par défaut sera 0. Si vous souhaitez vérifier la valeur null, indiquez int comme Integer dans la déclaration. Alors l'objet Integer peut être null. Ainsi, vous pouvez vérifier où il est nul ou non. Même lors de la validation du bean javax, vous ne pourrez pas obtenir d'erreur pour l'annotation @NotNull tant que la variable n'aura pas été déclarée en tant qu'Integer. 

0
chaitanya