我的Java代码有问题。 我想传递一个文件(精度为xml文件)作为方法的输入参数。我粘贴我的代码:
public File searchPlaces(){
URL url = getClass().getResource("arml.xml");
File file = new File(url.getPath());
return file;
}
当我尝试调用此方法时,我有一个NullPointerException。
有人可以帮助我吗?
答案 0 :(得分:2)
您未能检查“url”是否使用非空值初始化。
获得有效的非空URL后,您可以尝试从中创建File
对象。您可能必须检查该文件是否也是非空的(或者可能允许此方法返回空项)。无论哪种方式,返回null项(File或其他)在Java中都是完全可以接受的。
取消引用null(在对象引用上调用一个不引用任何东西的方法)不是。这就是你在
得到错误的原因url.getPath()
你只是错误地识别失败的地方。
答案 1 :(得分:1)
是的,你可以。如果新的File()调用生成异常,您可能会得到一个空指针。
调试并查看Url是否为null。
答案 2 :(得分:1)
您可能想要做的不是返回File对象,而是返回BufferedReader或FileReader,或者FileInputStream。然后,使用try / catch封装方法中的所有错误处理,或者使用throws声明将错误冒泡。