このコードに出くわしました
ResourceBundle BUNDLE = ResourceBundle.getBundle("abcdE");
ロードするファイルをどこで見つけることができるのでしょうか? ディスクにファイルabcdEが見つかりませんでした。
このコードに出くわしました
ResourceBundle BUNDLE = ResourceBundle.getBundle("abcdE");
ロードするファイルをどこで見つけることができるのでしょうか? ディスクにファイルabcdEが見つかりませんでした。
ResourceBundle の getBundle ドキュメントから:
*....getBundle は次に、候補のバンドル名を繰り返し処理して、実際のリソース バンドルをインスタンス化できる最初の名前を見つけます。候補となるバンドル名ごとに、リソース バンドルの作成を試みます。
最初に、候補のバンドル名を使用してクラスをロードしようとします。そのようなクラスが、指定されたクラス ローダーを使用して検出およびロードでき、ResourceBundle と互換性のある割り当てがあり、ResourceBundle からアクセス可能であり、インスタンス化できる場合、getBundle はこのクラスの新しいインスタンスを作成し、それを結果のリソース バンドルとして使用します。
それ以外の場合、getBundle はプロパティ リソース ファイルを見つけようとします。すべての "." を置き換えることにより、候補のバンドル名からパス名を生成します。"/" を含む文字と文字列 ".properties" を追加します。ClassLoader.getResource を使用して、この名前の「リソース」を見つけようとします。(getResource の意味での「リソース」は、リソース バンドルの内容とは何の関係もないことに注意してください。それは、ファイルなどの単なるデータのコンテナーです。)「リソース」が見つかった場合は、そのコンテンツからの新しい PropertyResourceBundle インスタンス。成功した場合、このインスタンスは結果のリソース バンドルになります。*
だから私がこれから理解しているのは:
a.b.c.d.E
クラスではない場合、パスを持つプロパティ ファイルを探します。
a/b/c/d/E.properties