有没有更简洁的方法来创建指定类型的Optional.ofNullable而不将其分配给变量?
工作方案:
public Optional<V> getValue2(K key) {
Node<K, V> node = getNode(key);
Optional<V> nullable = Optional.ofNullable(null);
return isNull(node) ? nullable : Optional.ofNullable(node.getValue());
}
Run Code Online (Sandbox Code Playgroud)
在这里我收到一个错误:"类型不匹配:无法从Optional转换为Optional"
public Optional<V> getValue(K key) {
Node<K, V> node = getNode(key);
return isNull(node) ? Optional.ofNullable(null) : Optional.ofNullable(node.getValue());
}
Run Code Online (Sandbox Code Playgroud) 为什么File :: isDirectory在下面的例子中作为FileFilter工作正常?
File[] files = new File(".").listFiles(File::isDirectory);
Run Code Online (Sandbox Code Playgroud)
listFiles方法需要FileFilter作为参数
public File[] listFiles(FileFilter filter) {
...
}
Run Code Online (Sandbox Code Playgroud)
FileFilter是一个功能接口,它有一个方法接受 File参数
boolean accept(File pathname);
Run Code Online (Sandbox Code Playgroud)
而且File类中的isDirectory方法没有参数
public boolean isDirectory() {
...
}
Run Code Online (Sandbox Code Playgroud)