Java 在静态方法中加载资源文件
我需要创建一个命令行应用程序Java 在静态方法中加载资源文件,java,static,resources,Java,Static,Resources,我需要创建一个命令行应用程序 public static void main(String[] args) { //Loading lenders data from the CSV file DataLoader.loadData(lendersList); } loadData(lenderList)是静态的,需要在内存中加载文件的内容 public class DataLoader { protected static void loadData(List<Len
public static void main(String[] args) {
//Loading lenders data from the CSV file
DataLoader.loadData(lendersList);
}
loadData(lenderList)是静态的,需要在内存中加载文件的内容
public class DataLoader {
protected static void loadData(List<Lender> lendersList) {
try {
CSVReader reader;
//reader = new CSVReader(new FileReader(ConstantData.CSVFILE));
reader = new CSVReader(new InputStreamReader(getClass().getResourceAsStream("/config.txt")));**
....
}
公共类数据加载器{
受保护的静态无效加载数据(列表出借人列表){
试一试{
CSVReader阅读器;
//reader=new-CSVReader(新文件读取器(ConstantData.CSVFILE));
reader=new CSVReader(新的InputStreamReader(getClass().getResourceAsStream(“/config.txt”))**
....
}
由于该方法是静态的,我无法加载资源(config.txt)
有人知道在这种情况下加载资源的方法吗?我假设是编译错误。替换
getClass()
与
如果我猜错了,请解释您得到的错误,并发布相应的消息和/或stacktrace。请不要将其添加为注释,因为这种事情的格式很糟糕。由于该方法是静态的,我无法加载资源(config.txt)。???请解释…我得到了这个错误:非静态方法getClass()无法从静态上下文引用。我通过使用reader=new CSVReader(new InputStreamReader(Main.class.getClassLoader().getResourceAsStream(ConstantData.CSVFILE)),使其正常工作;我相信这与Lothar的回答是一致的,只要
Main
和DataLoader
来自同一个类加载器。getClass()
是this.getClass()
的缩写。在静态方法中没有this
,因此编译错误。
DataLoader.class