我有以下Java中的搜索代码:
return getTableViewController().getMe().getColumns().stream()
.filter($ -> Database.equalsColumnName($.getId(), columnId))
.findFirst()
.get();
我希望按名称查找列并返回第一个找到的列。
'Optional.get()' without 'isPresent()' check
将get()
替换为orelse(null)
。
问题内容: 我在Java中有以下搜索代码: 我希望按名称查找列并返回找到的第一个。 我了解在某些情况下什么也找不到,应该对其进行处理,但是如何处理呢? 这是这个咒骂所要的: ? 怎么修?如果没有发现,我希望返回。 更新 好吧,好吧,我只是没有意识到,那又回来了。 问题答案: 替换为。
我有一个方法返回Book对象的(不要介意名称,因为它只是一个代码示例)。我想获取Book类中列表的大小: 事情是这样的:
问题内容: 这看起来很丑。可选选项的优点在这里完全消失了。我读到应该使用或代替。但是,如果我更换每个吸气剂,真的有好处吗? 与 您知道这里的一些常见或最佳做法吗? 问题答案: 您可以使用 关键是仅在可选函数不为空时才评估映射函数,否则结果将保留为空。如果可选为空,将返回。
编译器显示下一个错误:在这里输入图像描述
提供的参数与调用目标的任何签名都不匹配:类型'new()=>foo'和'Bar'的构造签名不兼容:类型'Bar'需要构造签名,但类型'foo'缺少一个(c:Bar)=>Bar Foo的构造函数类型是()=>Foo,我认为Bar就是这么说的。我是不是漏掉了什么?
我想进行更新,但我想添加的条件检查不是基于主表的哈希/范围,而是基于GSI。 实际上,如果给定属性(即GSI的哈希)已经存在,我希望保存失败。 例如,在一个虚构的employees表中,“SSN”是散列键,“EmployeeId”上有一个GSI。这两个属性都必须是独一无二的。在保存员工时,我希望确保表中没有使用“SSN”或“EmployeeId”。我可以用表的散列,也就是SSN,但不能用GSI的散