干净的番石榴方法来处理可能为空的集合

2023-11-22

我有一个需要参数的方法Collection<Foo> foos,可能为 NULL。我想最终获得输入的本地副本作为ImmutableSet。现在我的代码如下所示:

if (foos == null)
{
  this.foos = ImmutableSet.of();
}
else
{
  this.foos = ImmutableSet.copyOf(foos);
}

有没有更干净的方法来做到这一点?如果foos是一个简单的参数我可以做类似的事情Objects.firstNonNull(foos, Optional.of())但我不确定是否有类似的东西来处理集合。


我不明白你为什么不能使用Objects.firstNonNull:

this.foos = ImmutableSet.copyOf(Objects.firstNonNull(foos, ImmutableSet.of()));

如果您喜欢的话,您可以使用静态导入来节省一些输入:

import static com.google.common.collect.ImmutableSet.copyOf;
import static com.google.common.collect.ImmutableSet.of;
// snip...
this.foos = copyOf(Objects.firstNonNull(foos, of()));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

干净的番石榴方法来处理可能为空的集合 的相关文章

  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi

随机推荐

  • 如何从 setuptools 安装程序 (setup.py) 中生成 python grpc 代码?

    我们在存储库中有一些 gRPC 的原型文件 我读到提交生成的代码并不好 所以我想我需要将生成作为软件包安装的一部分 例如 setuptools setup py 但是 要生成 gRPC 代码 您需要首先通过运行来安装包pip install
  • Spring Data 中的查询创建 - 动态 where 子句

    Spring data中有没有办法动态形成where子句 我想要做的是有一个方法 类似于 findBy get 方法 它使用上述非 NULL 属性运行 WHERE 和 AND 例如 Consider the object Person fi
  • SQL Server 分区 - 唯一索引错误

    我有一个按 TRANSACTION DATE TIME 分区的表 表有一列 ID 我想为分区方案上的 ID 创建一个唯一索引 如下所示 CREATE UNIQUE NONCLUSTERED INDEX IX ID ON PS DATETIM
  • 在 AngularJS 中拒绝带有多个参数的 Promise(如 $http)

    回调 httpPromise 有多个参数 主体 状态 标头 配置 我想手动创建类似的承诺 但不知道该怎么做 我想做的或多或少是 myservice action then function status message config 我知道
  • IIS7 劫持我的 Coldfusion 错误页面

    在我的异常处理文件中 我将状态代码设置为 404 然后渲染 n 个 HTML 页面 作为错误页面 想想失败鲸鱼
  • 同时安装 Visual Studio 2010 和 VS2008 会导致问题吗?

    这可能会导致什么样的问题 安装在虚拟机里更好吗 并行安装问题始终可能存在 您应该采取适当的保护措施 例如备份 使用虚拟机等 根据我个人的经验 它的效果很好 在我的 Tech Ed 演示中 我使用 Visual Studio 2005 200
  • 如何更改 Java 中 HTTP 响应中的字符集编码

    我必须从远程服务器获取一些 JSON 对象 为此我正在使用这个功能 它工作得很好 除了有时会获取一些奇怪的数据 我相信这是因为它使用 ASCII 字符集进行解码 请在下面找到我正在使用的方法 public HttpResponse call
  • Java 中的双向映射? [复制]

    这个问题在这里已经有答案了 我在 Java 中有一个简单的整数到字符串的映射 但我需要能够轻松地从整数检索字符串 以及从字符串检索整数 我尝试过 Map 但它只能从整数中检索字符串 这是一种方法 private static final M
  • 如何在 ASP.NET Core 中结合 FromBody 和 FromForm BindingSource?

    我创建了一个新的 ASP NET Core 2 1 API 项目 其中包含Datadto 类和此控制器操作 HttpPost public ActionResult
  • 如何获取对象属性的类型提示?

    我想获取对象属性的类型提示 我只能获得该类的提示 而不能获得该类的实例 我尝试过使用foo instance class from here但这只显示了类变量 那么在示例中我如何获得类型提示bar class foo var int 42
  • 在 Genymotion Android 中连接到 VPN

    我正在尝试在 Genymotion 虚拟设备中配置并连接到 VPN 我可以在虚拟设备中配置 VPN 连接 但无法连接 没有显示错误 我在我的 PC 和真实 Android 设备中使用了相同的设置 它在设备和 PC 中运行良好 我认为是 Vi
  • 在单个 RDS 文件中保存多个变量

    我想将变量列表传递给 saveRDS 以保存它们的值 但它会保存它们的名称 variables lt c A B C saveRDS variables file R 它保存单个向量 变量 我也尝试过 save variables file
  • 如何从文件中读取前 n 行和后 n 行?

    如何读取文件的前n行和后n行 For n 2 我读online that head n2 tail n2 会起作用 但事实并非如此 cat x 1 2 3 4 5 cat x head n2 tail n2 1 2 预期输出为n 2将会 1
  • 对多个条件使用 if else 语句

    样本数据 x lt runif 100 min 0 max 1 y lt runif 100 min 0 max 1 dif lt x y dat lt data frame x dif 我想要做的是在数据框中创建另一列dat called
  • 如何在容器内运行 kubectl 命令?

    在 pod 内的容器中 如何使用 kubectl 运行命令 例如 如果我需要在容器内执行类似的操作 kubectl 获取 Pod 我已经尝试过 在我的 dockerfile 中 我有以下命令 RUN curl LO https storag
  • php ajax表单提交而不刷新父页面

    我有一些关于 ajax 表单提交的问题 send on click function ajax type POST url ads process php data ads serialize success function if dat
  • 使用 Java Graphics 进行内部剪辑

    我需要使用 java awt Graphics 绘制一条线 但只应渲染位于矩形之外的线部分 是否可以使用图形剪切支持 或者我是否需要自己计算交集并剪切线 您需要使用Area班级 此示例将演示如何执行您所要求的操作 import java a
  • 将 NIB 文件转换为 XIB 文件

    有没有办法转换NIB文件到XIB文件以便我可以在 Xcode 4 中打开它们 一旦我编辑了它们 有没有办法将它们转换回NIB 一旦 nib 文件被扁平化和剥离 现在这是编译过程的默认部分 那么在 IB 中打开它就很困难 您可能想看看笔尖解锁
  • UTF-8 中的代理字符是什么?

    我有一个奇怪的验证程序 用于验证 utf 8 字符串是否是有效的主机名 PHP 中的 Zend Framework Hostname valdiator 它允许 IDN 国际化域名 它将每个子域与由其十六进制字节表示定义的字符集进行比较 两
  • 干净的番石榴方法来处理可能为空的集合

    我有一个需要参数的方法Collection