如何在java中编写nullable int?

时间:2013-01-14 15:16:56

标签: c# java nullable

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

在C#中,我可以这样写:

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


public class Test
{
    public int? Id{get;set;}
}

id可以为空。

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

Method "setId" failed

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

3 个答案:

答案 0 :(得分:106)

你可以使用Integer这是一个可以为空的。

答案 1 :(得分:34)

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

Int32(或int)是C#中的结构(值类型)。相比之下,Java中的Integer包装 int的类。引用类型的实例可以是null,这使Integer成为合法选项。

.NET中的

Nullable<T>为您提供了类似的选项,因为它使您可以将值类型视为可空类型。但是,它仍然与Java的Integer不同,因为它是作为结构(值类型)实现的,可以与null进行比较,但实际上不能保持真正的空参考。

答案 2 :(得分:6)

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