web-dev-qa-db-ja.com

javaでnullable intを書く方法は?

WebフォームをJavaのモデルに変換したい。

C#では、これを書くことができます。

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


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

idはnullでもかまいません。

ただし、Javaではstruts2を使用すると、例外がスローされます。

Method "setId" failed

それでは、このケースをJavaで書く方法は?

63
Dozer

クラスであり、null許容の整数を使用できます。

115

Integerを使用できます。これは、Java=でnull可能)の参照型(クラス)です。

Int32(またはint)は、C#の構造体(値型)です。対照的に、Integer in Javaはwraps an intであるクラスです。参照型のインスタンスはnull、これはIntegerを正当なオプションにします。

.NETのNullable<T>では、null許容型のような値型を扱うことができるため、同様のオプションが提供されます。ただし、JavaのIntegerとは異なります。これは、nullと比較できる構造体(値型)として実装されていますが、実際には真のnull参照を保持できないためです。

37
Matthias Meid

Javaでは、Integerの代わりにintを使用します。これは本質的にnullを許可するintです。私はStrutsにあまり詳しくありませんが、Integerを使用すると値を省略できます。

8
Polaris878