我现在正在和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
界面,但没有任何来源可以证明这一点。
任何人都能为两种方法的性能差异提供良好的来源吗?