为什么在这个foreach循环中,elem不被识别为Path,它是什么,我只能在它上面调用Object方法?
public class TypeOption<Path> implements Option<Path> {
@Override
public void apply(String arg, Collection<Path> c) {
for (Path elem : c) {
if (Files.isExecutable(elem)) c.remove(elem);
}
}
}
这一行
if (Files.isExecutable(elem)) c.remove(elem);
引起了麻烦,它说
The method isExecutable(java.nio.file.Path) in the type Files is not applicable for the arguments (Path)
答案 0 :(得分:3)
因为Path
是一个类型参数 - 你已经声明了一个泛型类型,Path
作为类型参数。我怀疑你*想要:
public class TypeOption implements Option<Path> {
此时,Path
引用名为Path
的现有类型,并用于参数到Option<T>
的类型}(或Option
)的任何类型参数。