Ich möchte ein Webformular in ein Modell in Java konvertieren.
In C # kann ich folgendes schreiben:
<input name="id" value="" type="text"/>
public class Test
{
public int? Id{get;set;}
}
Das id
kann null sein.
In Java wird bei Verwendung von struts2 jedoch eine Ausnahme ausgelöst:
Method "setId" failed
Wie schreibe ich diesen Fall in Java?
Integer
stattint
.Antworten:
Anstatt zu verwenden
int
, können SieInteger
( Integer javadoc ) verwenden, da es sich um eine nullfähige Java-Klasse handelt.quelle
Sie können ein verwenden
Integer
, das ein Referenztyp (eine Klasse) in Java ist und daher nullbar ist.Int32
(oderint
) ist eine Struktur (Werttyp) in C #. Im Gegensatz dazuInteger
in Java ist eine Klasse , die umschließt einint
. Instanzen von Referenztypen können seinnull
, wasInteger
eine legitime Option darstellt.Nullable<T>
In .NET stehen Ihnen ähnliche Optionen zur Verfügung, da Sie einen Wertetyp wie einen nullbaren Typ behandeln können. Es unterscheidet sich jedoch immer noch von Java,Integer
da es als Struktur (Werttyp) implementiert ist, die mitnull
einer echten Nullreferenz verglichen werden kann , diese jedoch nicht enthalten kann.quelle
Verwenden Sie in Java einfach
Integer
anstelle vonint
. Dies ist im Wesentlichen ein nullable int. Ich bin mit Struts nicht allzu vertraut, aber mitInteger
sollten Sie den Wert weglassen können.quelle