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で書く方法は?
クラスであり、null許容の整数を使用できます。
Integer
を使用できます。これは、Java=でnull可能)の参照型(クラス)です。
Int32
(またはint
)は、C#の構造体(値型)です。対照的に、Integer
in Javaはwraps an int
であるクラスです。参照型のインスタンスはnull
、これはInteger
を正当なオプションにします。
.NETのNullable<T>
では、null許容型のような値型を扱うことができるため、同様のオプションが提供されます。ただし、JavaのInteger
とは異なります。これは、null
と比較できる構造体(値型)として実装されていますが、実際には真のnull参照を保持できないためです。
Javaでは、Integer
の代わりにint
を使用します。これは本質的にnullを許可するintです。私はStrutsにあまり詳しくありませんが、Integer
を使用すると値を省略できます。