调用java.io.File的isDirectory()时出现cannot find symbol错误的原因
问题根因
isDirectory()是java.io.File类的专属实例方法,java.lang.String类未定义该方法,你直接在字符串类型的path变量上调用该方法,编译器无法找到对应符号,因此抛出错误。
修复代码
你需要先将字符串路径封装为File类实例,再调用对应方法:
import java.io.File; public class MyUtils { public static void main(String[] args) { String path = "/this/is/not/a/valid/path"; // 构造File类实例 File file = new File(path); boolean validPath = file.isDirectory(); System.out.println(validPath); } }
可选优化
Java 7及更高版本可以使用NIO API实现相同校验,功能扩展性更强:
import java.nio.file.Files; import java.nio.file.Paths; public class MyUtils { public static void main(String[] args) { String path = "/this/is/not/a/valid/path"; boolean validPath = Files.isDirectory(Paths.get(path)); System.out.println(validPath); } }
内容的提问来源于stack exchange,提问作者Belushi
相关产品推荐
相关产品推荐

