如何读from/with Optional<Reader>?
How to read from/with Optional<Reader>?
我写了一个简短的测试 Class 用于测试(谁会猜到),但找不到读取 Optional<BufferedReader>
的方法。
也许我对 I/O 不够熟悉,但我尝试创建一个 BufferedReader
来读取文件并将其传递给 Optional<BufferedReader>
,但它不允许我这样做。
铸造也不起作用。那么,我该如何解决这个问题?
File file = new File(myFile);
Optional<BufferedReader> reader;
这行不通:
reader.read(new FileReader(myFile).read());
或
reader = new FileReader(myFile).read();
谢谢!
File file = new File(myFile);
Optional<BufferedReader> reader;
简单地说,这没有任何意义。 Optional 的要点是表达:你有 "something",它可以存在,也可以缺失。但是您不能直接从该 Optional 对象将它用于 "keep reading"。 Optional 只是一个包装器,可以帮助您避免传递 null
。
从这个角度来看,Optional 不是阅读的来源。如果有的话,您可以使用 Optional,以便其他人可以确定:有一个 reader,所以让我们从那个 reader 读取。换句话说:你可以做 if (readerOptional.isPresent())
,而不是问 if (reader == null)
。然后你可以做 someReader = readerOptional.get()
。
但如前所述,这样做确实(没有太大)意义。
我写了一个简短的测试 Class 用于测试(谁会猜到),但找不到读取 Optional<BufferedReader>
的方法。
也许我对 I/O 不够熟悉,但我尝试创建一个 BufferedReader
来读取文件并将其传递给 Optional<BufferedReader>
,但它不允许我这样做。
铸造也不起作用。那么,我该如何解决这个问题?
File file = new File(myFile);
Optional<BufferedReader> reader;
这行不通:
reader.read(new FileReader(myFile).read());
或
reader = new FileReader(myFile).read();
谢谢!
File file = new File(myFile);
Optional<BufferedReader> reader;
简单地说,这没有任何意义。 Optional 的要点是表达:你有 "something",它可以存在,也可以缺失。但是您不能直接从该 Optional 对象将它用于 "keep reading"。 Optional 只是一个包装器,可以帮助您避免传递 null
。
从这个角度来看,Optional 不是阅读的来源。如果有的话,您可以使用 Optional,以便其他人可以确定:有一个 reader,所以让我们从那个 reader 读取。换句话说:你可以做 if (readerOptional.isPresent())
,而不是问 if (reader == null)
。然后你可以做 someReader = readerOptional.get()
。
但如前所述,这样做确实(没有太大)意义。