如何在构造函数中获取资源?

时间:2015-01-14 12:08:04

标签: java file resources

我在类路径中有一个文件,我正在尝试使用class.getResource(String).getPath()获取文件路径,并且它正在返回NPE。

当我在同一个类中的任何方法中执行相同操作时,它工作正常。

我无法在构造函数中使用getResource方法访问文件吗?

1 个答案:

答案 0 :(得分:1)

  

我无法在构造函数中使用getResource方法访问文件吗?   javafile

是的,你可以。

您在构造函数中调用class.getResource()的事实不会改变方法的行为。如果目标类相同且资源路径相同,那么在任何一种情况下都应该得到相同的结果。

我怀疑行为的差异取决于其他因素。例如,如果在不同的类对象上使用相同的路径调用class.getResource,则可能会得到不同的行为,因为这些类可能具有不同的类加载器,或者因为相对于目标的包名解析了相对资源路径类。

正如@Dima指出的那样,getResource()如果无法找到您要求的资源,则会返回null。这是您NPE最可能的原因(基于您提供的粗略信息......)

如果本答案没有为您提供足够的线索,那么您需要向我们提供说明您遇到的问题的SSCCE。