繁体   English   中英

当方法定义为 int 数据类型时,如何在 Java 中返回 null?

[英]How can I return null in Java when the method is defined as int data type?

我一直在做一个代码,它强制使用数据类型不能是无效的,我不需要返回任何东西。

在 Java 中, null只是引用类型的有效值。 它不能表示原始类型,例如int 以下是一些可供考虑的替代方案:

  1. 如果您使用的是 Java 8 或更高版本,并且能够更改方法的返回类型,则可以使用OptionalInt类型来表示可能存在或不存在的int值。 在这种情况下,如果没有要返回的int值,您将返回OptionalInt.empty() ,而OptionalInt.of(x)返回int x 请注意,调用者需要使用 class 上可用的其他方法之一来解开int值(如果存在)。 这种方法通常是新代码的首选,因为它使意图和用法非常清楚。
  2. 如果您使用的是较旧的 Java 版本,另一种可能性是将返回类型更改为Integer 这是一个包装器null用于允许返回 null 的int值。 此外,当值不是null时,Java 的自动拆箱规则允许它在需要int值的上下文中使用。 但是,如果将null值拆箱为int值,则会导致NullPointerException ,因此在执行可能导致拆箱的操作之前检查null非常重要。
  3. 如果需要使用int返回类型,通常使用一个哨兵值来表示异常返回。 例如,如果该方法的正常返回值都是非负整数,则可以使用诸如-1之类的值来表示不存在的返回值。 这通常用于较旧的 JDK 方法,例如String.indexOf()
  4. 在某些情况下,当无法返回有效值时抛出Exception是有意义的。 仅在真正异常的情况下使用这种方法是一个好主意,因为抛出异常的运行时成本远高于正常的方法返回,并且控制流会使代码更难理解。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM