如何在java中编写nullable int?

Doz*_*zer 64 c# java nullable

我想将Web表单转换为Java中的模型.

在C#中我可以这样写:

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


public class Test
{
    public int? Id{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

id可以为空.

但是在Java中使用struts2时会引发异常:

Method "setId" failed
Run Code Online (Sandbox Code Playgroud)

那么如何用Java编写这个案例呢?

izo*_*ica 121

您可以使用Integer,它是一个类并且可以为空.

  • 谢谢~'int'和C#中的'Integer'相同,所以我不知道这个解决方案. (5认同)

Mat*_*eid 39

您可以使用a Integer,它是Java中的引用类型(类),因此可以为空.

Int32(或int)是C#中的结构(值类型).相比之下,Integer在Java中是一个包装的类int.参考类型的实例可以是null,这使得Integer一个合法的选项.

Nullable<T>在.NET中为您提供了类似的选项,因为它使您可以将值类型视为可空类型.但是,它仍然与Java不同,Integer因为它实现为可以与之比较的结构(值类型)null,但实际上不能保存真正的空引用.

  • 这是比公认的答案更彻底的答案 (2认同)

Pol*_*878 8

在Java中,只需使用Integer而不是int.这基本上是一个可以为空的int.我对Struts不太熟悉,但是使用Integer应该允许你省略值.