Java 中有标准的 Option 或 Nullable 类吗?

2024-03-02

Nullable(C#) 的含义有点不同,但无论如何Option(斯卡拉)和Nullable可以用来表达“有价值或无价值”的概念。

例如,当您想在字符串中查找子字符串时,最好返回 Option[Int](在 Scala 中,而不是晦涩难懂的 -1 作为 Int)(在 Scala 中,它是None不求回报)。

标准Java中有这样的类吗?如果是,那是什么?

请注意,我不是问如何编写这样的课程。

Update

正如我所写,Nullable有不同的意义。考虑一下:

想象一下Map[K,V],方法get的语义是如果有这个key就获取key的值,如果没有这个key就什么也不获取。

不能使用 null 有两个原因,不能使用任何具体类有一个原因。选项[V]是要走的路。


你问了两年多了,但是两个月前,Java SE 8 已经推出了java.util.Optional<T> http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html。有关介绍,请参阅这篇 Technet 文章:

厌倦了空指针异常?考虑使用 Java SE 8 的可选! http://www.oracle.com/technetwork/articles/java/java8-optional-2175753.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中有标准的 Option 或 Nullable 类吗? 的相关文章

  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • 具有两个或多个当前值的 Delphi 进度条

    我想在我的软件中制作一种多色条 一种进度条 但有两个当前值 这就是我需要它的原因 我有一些 预算部分 每个部分都有自己的限制 100 美元 1000 美元等 我还有一个用于添加新账单 并将账单链接到预算部分 的编辑表单 在这个编辑器中 我想
  • Hibernate 在 ManyToOne 关系中处理长 0 值而不是 NULL

    我使用 Hibernate 来访问旧数据库 对于某些表 不强制执行父子引用完整性 并且long对于子表中的某些 父 列 使用 0 值代替 NULL 以表示 无父 我仍然想使用这些关系 ManyToOne and OneToMany字段 但得
  • 无法通过 RIA 服务访问 EntityObject 类型

    我的实体框架模型是从 SQL Server 数据库生成的 由于我需要从 Silverlight 访问数据库 因此我根据 EF 模型为 RIAServices 生成了一个 DomainService Product是自动生成的之一Entity
  • 一次对多个属性使用“转换为自动属性”

    我发现自己经常使用 Resharper 的 转换为自动属性 重构来删除 C 3 0 之前的样板代码 有什么方法可以将其应用到单个类中的所有属性立刻 ReSharper 可以做到这一点 Options gt Code Cleanup gt U
  • Pygame:display.update() 在时钟延迟后才会更新

    我正在使用 pygametime Clock以较低的 FPS 运行我的游戏 我注意到我的输入似乎需要额外一帧才能生效 我做了一些调试 发现这不是问题pygame event get 而是与pygame display update 我编写了
  • DynamoDBScanExpression withLimit 返回的记录多于限制

    必须列出 DynamoDB 表中的所有记录 无需任何过滤表达式 我想限制记录数量 因此将 DynamoDBScanExpression 与 setLimit 结合使用 DynamoDBScanExpression scanExpressio
  • 在 Visual Studio 2012 中以编程方式指定专用扩展库

    VS 2012 的最新功能之一是能够创建私人延伸画廊 http blogs msdn com b visualstudio archive 2011 10 03 private extension galleries for the ent
  • 异步管道不会将对象数据填充到模板中

    谁能帮我看看我的模板中是否存在语法错误 它不会给出错误 但也不会将数据填充到模板中 div h2 hero h2 h2 hero name details h2 div div div
  • 将额外参数传递给 C# 回调

    如何向以下回调添加额外参数 objXmpp OnLogin new ObjectHandler objXmppArun OnLogin private void objXmppArun OnLogin object sender 是否可以向
  • 如何在 JavaScript 中查找到已知位置的距离

    在浏览器中使用 JavaScript 如何确定从我当前位置到另一个我有纬度和经度的位置的距离 如果您的代码在浏览器中运行 您可以使用 HTML5 地理定位 API window navigator geolocation getCurren
  • Angular JS:如何绑定到 Promise

    我正在尝试将承诺与视图绑定 我不知道你是否可以直接这样做 但这就是我正在尝试做的 有什么想法我做错了吗 注意 源代码在超时方面做了一些设计 并使用了静态数据 但这是为了使代码更易于诊断 EDIT JSFiddle 页面 http jsfid
  • 与 REST-assured 相比,使用 SOAP UI 来自动化 CI 的 REST 服务是否有优势

    我必须在我的项目中自动化 REST API 测试并将其集成到 jenkins 中的现有 CI 中 我即将开始使用 REST assured 进行编码 但是我碰巧看到 SOAP UI REST 教程并了解到 SOAP UI 中有一个 Mave
  • 如何在 C# 中读取二进制文件?

    我有一个存在于文本和二进制图像中的文件 我需要从 0 到 30 位置读取相关文本 而 31 上的位置将是二进制格式的图像 我必须遵循哪些步骤才能解决该问题 目前 我正在尝试使用它来阅读它FileStream 然后我将 FileStream
  • .NET 使用错误的 2.0 machine.config 而不是 4.0

    我在 IIS 7 0 Windows Server 2008 R1 上安装了 NET Web 应用程序 我已在服务器上安装了 NET 4 0 并为 4 0 配置了应用程序池和集成管道 由于某种原因 我收到以下错误 500 19 The co
  • 通过三种方法计算 CCA

    我最近研究了 CCA 的概念 并想在 MATLAB 中实现它 但是有一个现有的 matlab 命令佳能 http in mathworks com help stats canoncorr html展示 我想编写自己的代码 我对其进行了广泛
  • SQL 如何根据现有列的计数为新列创建值?

    我有一个正在读取的临时表 我想查看只有两个等级值的列之一 3 或 4 并构建两个新列 一个保存 3 的计数和另一个用于保存 4 的计数 按特定分组 我的代码看起来像这样 Select Max Counting as Total studen
  • 使用 VPC 配置添加 AWS Lambda 导致访问 S3 时超时

    我尝试从 AWS Lambda 访问 S3 和 VPC 上的资源 但由于我将 AWS Lambda 配置为访问 VPC 因此访问 S3 时超时 这是代码 from future import print function import bo
  • 单元测试覆盖调用 super() 的方法

    我试图找出为重写方法编写单元测试的最佳方法 该方法调用 super 作为最后一步 基本上 我想在基类中使用参数之前对其进行处理 下面是一个方法的示例 Override public JobExecution run Job job JobP
  • 如果没有尾部斜杠,Nginx 会导致 301 重定向

    我在使用 NAT 的虚拟机中运行 nginx 当我从主机访问它时遇到重定向问题 按预期工作 http localhost 8080 test index htm works http localhost 8080 test works 没有
  • Java 中有标准的 Option 或 Nullable 类吗?

    Nullable C 的含义有点不同 但无论如何Option 斯卡拉 和Nullable可以用来表达 有价值或无价值 的概念 例如 当您想在字符串中查找子字符串时 最好返回 Option Int 在 Scala 中 而不是晦涩难懂的 1 作