-2

次のコード行があります。

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 にアクセスできるようになると思います。

それが本当なら、classLoader は jar を含めるパスをどこに定義しますか?

4

1 に答える 1