- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想知道当我知道 100 时,是否有办法在不使用 .orElse()
的情况下消除 findFirst().get()
处的警告% 每次都有结果,所以我从来没有得到 NoSuchElementException
。
例如让我们看下面的代码:
List<String> myList = new ArrayList<>();
myList.add("Test");
myList.add("Example");
myList.add("Sth");
String fisrstString = myList.stream().findFirst().get(); // here I surely get "Test"
我不知道其他 IDE 如何处理这个问题,但 IntelliJ 将其视为警告
'Optional.get()' without 'isPresent()'
我想它可能不知道什么时候可以得到 NoSuchElementException
,什么时候不能,或者我不知道为什么。我知道有办法解决这个警告(isPresent()
check, .orElse(something)
)但是代码没用,所以我不想使用那些解决方案,因为它们是如此不必要。
您知道我能做什么,或者解释一下 IDE 是如何处理的吗?
最佳答案
嗯,对我来说,最好的方法是使用函数式编程并继续使用可选的。因此,例如,如果您需要将此字符串传递给某些服务,您可以这样做:
String fisrstString = myList.stream().findFirst().get();
service.doSomething(fisrstString);
但这看起来不太好。相反,您可以利用函数式编程的优点,并执行以下操作:
myList.stream().findFirst().ifPresent(service::doSomething);
关于Java8 : stream findFirst result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44458540/
我曾以为 FindFirst 会按字母顺序查找文件,但最近我发现虽然大多数情况都是如此,但有一些文件并不是按字母顺序排列的。 if FindFirst( AProgramPath, faAnyFile
在管道中使用findFirst()和map()是否有效。findFirst是短路方法而map是中间操作。 this.list.stream().filter(t -> t.name.equals("p
Stream 的 findFirst 方法在此流中找到第一个元素为 Optional。如果流没有元素,则 findFirst 返回空 Optional。如果流没有遇到顺序,则 findFirst 可以
早上好...我正在列出目录中的所有文件...但我面临以下问题...当文件夹全部都是英文...但操作系统是葡萄牙国防部...如何根据操作系统语言列出: 例如:Program Files (EN) ->
在我的应用程序中,我使用以下过程递归扫描任何文件夹和子文件夹,如果该文件夹包含文本文件 (*.txt),我会将文件名添加到我的过程中定义的 TStringList: procedure FileSea
我将参数值'*1.dat'传递给FindFirst,FindFirst()例程返回的第一个文件仍然是46checks5.dat,非常一致。 这是一个已知问题吗? vpath:=trim(vpath);
以下方法是用于选择歌曲的加权随机选择算法的一部分。 我想将下面的方法转换为使用流,以确定它是否更清晰/更可取。我不确定这是否可能,因为计算是有状态的操作,取决于列表中的位置。 public Song
我有以下代码(TrResponse 和 TrNode 的代码无关): public TrResponse from(final TrNode b1, final TrNode b2, final Tr
我有两个表: AuctionPackage $this->belongsTo('id', 'AuctionPackageTranslation', 'auction_package_id', NULL
我正在使用 Realm 为我的应用程序提供数据库。但是…… 登录后,服务器返回数据,我创建(AccountManager 的)帐户并将这些数据保存在应用程序的数据库中,就像这样(当然是在 AsyncT
我想知道当我知道 100 时,是否有办法在不使用 .orElse() 的情况下消除 findFirst().get() 处的警告% 每次都有结果,所以我从来没有得到 NoSuchElementExce
JavaDocs for findFirst说如果流有遇到顺序,那么总是返回第一个元素,但是如果流没有遇到顺序,则可以返回任何元素。 我试图演示它是如何在没有遇到顺序的流上工作的,但除了实际的第一个元
SortedSet 的 java 8 API 文档仅声明 stream() 继承自 java.util.Collection(参见 https://docs.oracle.com/javase/8/d
我正在从 Core Data (Magical Record) 切换到 Realm,我想知道是否有相当于 MR_findFirst 的东西? 现在,我正在做: if ([myRlmObject all
当使用 FindFirst() 搜索文件时,我在 TSearchRec.Attr 字段中得到一个属性值 2080。帮助中没有指定它,因为只有这些值可用,并且它们的组合不会产生 2080: 1 fa只读
我在 Windows 7 上使用 Delphi 2010,在递归搜索目录时遇到单引号加倍的问题。 这是我搜索目录的代码。 if FindFirst(aPath + '*', faDirectory
我想找到满足某些条件的矩阵每行中第一个值的索引。我想弄清楚如何在不使用数组理解的情况下做到这一点。 这就是我使用数组理解的方式: # let's say we want to find the fir
我想找到满足某些条件的矩阵每行中第一个值的索引。我想弄清楚如何在不使用数组理解的情况下做到这一点。 这就是我使用数组理解的方式: # let's say we want to find the fir
我有一个核心数据模型,该模型由具有多个位置的 Trail 组成。我也在使用 RestKit。我获取线索的代码如下所示: Trail *trail = [Trail findFirst]; 我的问题是每
我搜索并找到了FindFirst returns null问题,但没有人回答。当我认为我做错了什么时,让我用更多的细节来解释我的问题。 我正在开发一款应用,它要求用户先登录,然后让用户使用该应用。 我
我是一名优秀的程序员,十分优秀!