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

rhfm7lfc  于 2023-02-15  发布在  Java
关注(0)|答案(4)|浏览(266)

我想把一个Web表单转换成Java模型。
在C#中,我可以这样写:

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

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

id可以为空。
但在Java中使用struts2时会抛出异常:

Method "setId" failed

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

hxzsmxv2

hxzsmxv21#

您可以使用IntegerInteger javadoc)来代替int,因为它是一个可以为空的Java类。

yebdmbv4

yebdmbv42#

您可以使用Integer,它是Java中的引用类型(类),因此可以为空。
Int32(或int)在C#中是一个struct(值类型)。相比之下,Integer在Java中是一个 * Package * int的类。引用类型的示例可以是null,这使得Integer成为一个合法的选项。
NET中的Nullable<T>提供了类似的选项,因为它使您能够将值类型视为可空类型。然而,它与Java的Integer仍然不同,因为它实现为一个struct(值类型),可以与null进行比较,但实际上不能包含真正的空引用。

sdnqo3pr

sdnqo3pr3#

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

cgvd09ve

cgvd09ve4#

Optional<Integer>-该类的用途是提供类型级解决方案,用于表示可选值而不是空引用。
OptionalInt-一个容器对象,可能包含也可能不包含int值。如果存在值,isPresent()将返回true,getAsInt()将返回该值。

相关问题