如何在Java中写入可空int?
我想将一个Web窗体转换为Java中的模型。
在C#中我可以写这个:
<input name="id" value="" type="text"/> public class Test { public int? Id{get;set;} }
该id
可以为null。
但在使用struts2的Java中,它引发了一个exception:
Method "setId" failed
那么如何在Java中编写这个案例呢?
你可以使用整数,这是一个类,可以为空。
您可以使用Integer
,它是Java中的引用types(类),因此可以为空。
Int32
(或int
)是C#中的一个结构(值types)。 相比之下,Java中的Integer
是一个封装了int
的类。 引用types的实例可以为null
,这使Integer
成为合法选项。
.NET中的Nullable<T>
为您提供了类似的选项,因为它使您可以像可空types那样处理值types。 然而,它与Java的Integer
仍然不同,因为它被实现为一个struct(值types),它可以被比较为null
,但是实际上不能保存真正的空引用。
在Java中,只需使用Integer
而不是int
。 这实质上是一个可空的int。 我不太熟悉Struts,但使用Integer
应该可以让你省略这个值。