如何在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应该可以让你省略这个值。