如何在 Java 中编写可空整型?

我想用 Java 把一个 web 表单转换成一个模型。

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

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




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

id可以为空。

但是在 Java 中使用 struts2时会抛出一个异常:

Method "setId" failed

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

55085 次浏览

可以不使用 int而使用 Integer(整数 javadoc) ,因为它是一个可为空的 Java 类。

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

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

进入 Nullable<T>。NET 为您提供了类似的选项,因为它使您能够像对待可空类型一样对待值类型。但是,它仍然不同于 Java 的 Integer,因为它是作为 struct (值类型)实现的,可以与 null进行比较,但实际上不能保存真正的 null 引用。

在 Java 中,只需使用 Integer而不是 int。这本质上是一个可空整型数。我不太熟悉 Struts,但是使用 Integer应该可以省略该值。