web-dev-qa-db-fra.com

Comment écrire un int nullable en Java?

Je souhaite convertir un formulaire Web en modèle en Java.

En C # je peux écrire ceci:

<input name="id" value="" type="text"/>


public class Test
{
    public int? Id{get;set;}
}

id peut être nul.

Mais dans Java lors de l'utilisation de struts2, il lève une exception:

Method "setId" failed

Alors, comment écrire ce cas en Java?

63
Dozer

Vous pouvez utiliser Integer qui est une classe et est nullable.

115
Ivaylo Strandjev

Vous pouvez utiliser un Integer, qui est un type de référence (classe) dans Java et donc nullable.

Int32 (ou int) est un struct (type de valeur) en C #. En revanche, Integer in Java est une classe qui wraps an int. Les instances de types de référence peuvent être null, ce qui fait de Integer une option légitime.

Nullable<T> dans .NET vous offre des options similaires car il vous permet de traiter un type de valeur comme un type nullable. Cependant, il est toujours différent de Integer de Java car il est implémenté en tant que struct (type de valeur) qui peut être comparé à null, mais ne peut pas réellement contenir une référence null authentique.

37
Matthias Meid

En Java, utilisez simplement Integer au lieu de int. Il s'agit essentiellement d'un entier nullable. Je ne connais pas trop Struts, mais l'utilisation de Integer devrait vous permettre d'omettre la valeur.

8
Polaris878