NullPointerException on getResource



我尝试用SQL语句执行文件。唯一的问题是将文件保存到一个变量文件中,它将产生一个NullPointerException。

代码如下:

 public DataOpladen(String dataFile) throws IOException {
    File file = null;
    try {
        file = new File(Thread.currentThread().getContextClassLoader().getResource(dataFile).toURI());
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
    this.dataSchrijvenNaarDatabase(file);
}

在这一行我得到了异常:

file = new File(Thread.currentThread().getContextClassLoader().getResource(dataFile).toURI());

奇怪的是,它有时有效,有时不有效,所以没有行。

IntelliJ主动警告我,这个特定的调用可能导致NullPointerException,因为如果getResource找不到指定的资源,它将返回null

如果你不能加载所需的资源,你将无法做任何事情,一个简单的解决办法是事先做一个null检查:

URL resource = Thread.currentThread().getContextClassLoader().getResource(dataFile);
if(resource != null) {
    file = new File(resource.toURI());
    // rest of program dealing with file here
}

相关内容

  • 没有找到相关文章

最新更新