【发布时间】:2019-05-23 20:50:01
【问题描述】:
我有以下代码行:
InputStreamReader isr = new InputStreamReader(MethodHandles.lookup().lookupClass().getResourceAsStream(csvFile));
有人可以向新手解释一下吗:
MethodHandles.lookup()
lookupClass()
getResourceasStream()
代码工作并访问位于 jar 中的 csv 文件。我只是不明白每种方法在做什么
我能够将这条线简化为:
InputStreamReader isr = new InputStreamReader (SQLUtilPROD.class.getResourceAsStream (csvFile));
但还是一头雾水。 SQLUtilProd.class 做什么? getResourceAsStream 如何知道从 jar 中获取文件?如果你有多个罐子会发生什么?
不确定,但我认为我们使用 SQLUtil.class 来获取类对象,这反过来使我们能够访问 getResourceAsStream 用来定位文件的类加载器。
如果是这样,classLoader 在哪里定义包含 jar 的路径?
【问题讨论】:
标签: java inputstreamreader methodhandle