当前位置: 首页 > 面试题库 >

可选Int与可选

朱越
2023-03-14
问题内容

在浏览java.util软件包的文档时,我很惊讶地发现了这一点,Optional<T>并且OptionalInt彼此之间没有任何关系。这似乎很难相信,因为它表明它们是无关的类。

  1. 他们为什么没有一个通用的接口,类,子类型或 某些东西 来揭示它们之间的关系?(当您查看它们的用途时,它们是 非常 相似的类。)
  2. 另外,为什么需要额外的OptionalInt课程呢?你为什么不能只用Optional<Integer>呢?我以为是因为它int是原始的,但事实并非OptionalChar如此,这将是一个不一致的设计选择。

问题答案:

Java 8引入了很多专门针对基元的内容。原因很可能是装箱原语会创建大量的废纸箱。

例如这个

OptionalInt optionalFirst = IntStream
    .range(0, 100)
    .filter(i -> i % 23 > 7)
    .findFirst();

在这里,Optional<Integer>结果将是不一致的。像这样的方法也ifPresent(IntConsumer consumer)可以与IntStream世界共存。Optional<Integer>会迫使您进行转换(如果需要,您可以轻松完成此操作)

不需要特殊支持,char或者shortbyte因为所有这些都可以表示为int。缺少的是一个,boolean但是由于只有2个值,因此您无法与它们一起在流中进行太多操作。



 类似资料:
  • 问题内容: 我正在尝试在Realm中使用Optional Int,并且出现了我认为的旧错误。 码 错误 我正在将Realm 0.96.1与XCode 7.1一起使用 我的境界文档中了解它说,不支持作为,但https://twitter.com/realm/status/656621989583548416。那是来自Realm Twitter的,这就是为什么我感到困惑。被支持还是仍然没有? 问题答案

  • 我一直在使用Java 8中的新的可选类型,我遇到了一个似乎不受功能支持的常见操作:“orelseoptional” 请考虑以下模式: 这种模式有很多种形式,但归结起来就是在一个可选项上需要一个“orelse”,该“orelse”接受一个函数,生成一个新的可选项,只有当当前的可选项不存在时才调用。 它的实现如下所示: 我很好奇这样一种方法不存在的原因,如果我只是在一种无意的方式下使用Optional

  • 我试图模拟一个对象,该对象返回一个带有Mockito的Java可选对象: 当被调用,它返回。 我希望方法返回 返回的任何原因? 方法如下: 以下是Junit:

  • 可选链是一个调用和查询可选属性、方法和下标的过程,它可能为 nil 。如果可选项包含值,属性、方法或者下标的调用成功;如果可选项是 nil ,属性、方法或者下标的调用会返回 nil 。多个查询可以链接在一起,如果链中任何一个节点是 nil ,那么整个链就会得体地失败。 注意 Swift 中的可选链与 Objective-C 中的 nil 信息类似,但是它却工作在任意类型上,而且它能检测成功还是失败

  • 本页包含内容: 可选链可替代强制解析 为可选链定义模型类 通过可选链调用属性 通过可选链调用方法 使用可选链调用下标脚本 连接多层链接 链接可选返回值的方法 可选链(Optional Chaining)是一种可以请求和调用属性、方法及下标脚本的过程,它的可选性体现于请求或调用的目标当前可能为空(nil)。如果可选的目标有值,那么调用就会成功;相反,如果选择的目标为空(nil),则这种调用将返回空(

  • jQueryUI提供了selectable()方法来单独或在组中选择DOM元素。 使用此方法,可以通过使用鼠标在元素上拖动框(有时称为套索)来选择元素。 此外,可以通过在按住Ctrl/Meta键的同时单击或拖动来选择元素,从而允许多个(非连续)选择。 语法 (Syntax) selectable()方法可以使用两种形式 - $(selector, context).selectable (opti