78

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

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

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


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

id可以为空。

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

Method "setId" failed

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

4

3 回答 3

148

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

于 2013-01-14T15:18:04.017 回答
48

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

Int32(或int)是 C# 中的结构(值类型)。相反,Integer在 Java 中是一个包装int. 引用类型的实例可以是null,这是Integer一个合法的选择。

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

于 2013-01-14T15:18:33.143 回答
8

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

于 2013-01-14T15:18:55.647 回答