我想将Web表单转换为Java中的模型。
在C#中,我可以这样写:
<input name="id" value="" type="text"/>
public class Test
{
public int? Id{get;set;}
}
id
可以为空。
但是在Java中使用struts2时会引发异常:
Method "setId" failed
那么如何用Java编写这个案例?
答案 0 :(得分:106)
你可以使用Integer这是一个可以为空的。
答案 1 :(得分:34)
您可以使用Integer
,它是Java中的引用类型(类),因此可以为空。
Int32
(或int
)是C#中的结构(值类型)。相比之下,Java中的Integer
是包装 int
的类。引用类型的实例可以是null
,这使Integer
成为合法选项。
Nullable<T>
为您提供了类似的选项,因为它使您可以将值类型视为可空类型。但是,它仍然与Java的Integer
不同,因为它是作为结构(值类型)实现的,可以与null
进行比较,但实际上不能保持真正的空参考。
答案 2 :(得分:6)
在Java中,只需使用Integer
而不是int
。这基本上是一个可以为空的int。我对Struts不太熟悉,但是使用Integer
应该允许你省略该值。