我有以下代码行:
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 的路径?