可选的多个地图与单个地图

时间:2017-08-31 08:41:30

标签: java optional fold

我现在正在和Optional安静一段时间,我想知道哪种方式表现得更好。

Optional<String> path = Optional.of("LoremIp.sum")

Optional<BufferedReader> reader1 = 
  path.map(File::new)
      .map(FileReader::new)
      .map(BufferedReader::new)

Optional<BufferedReader> reader2 =
   path.map(file -> 
     new BufferedReader(new FileReader(new File())
   )

可读性在我的示例中是有争议的,可能取决于格式,但这不是我的问题。

reader1的创建吸引我作为一种更具功能性的风格,但在我看来,好像它创造了更多中间Optional对象。准确地说,它应该为每次调用Optional创建一个新的map

reader2的创建使用了Supplier,我认为它不如使用Function界面,但没有任何来源可以证明这一点。

任何人都能为两种方法的性能差异提供良好的来源吗?

0 个答案:

没有答案