この方法でリソースをロードするコードを見つけました:
Class.forName(myClass.class.getName()).getResourceAsStream("myResource");
まず、そのような構造を使用することの面白さについて疑問に思いました。必要な場合にのみクラスをロードし、動的ロードを有効にしているようClass.forName("className")
です (これは、たとえば、JDBC ドライバーをロードするときの典型的な構造です)。
しかし、この場合、クラスはコード内にあるため、動的ロードは非効率的ではありませんか? 以下のように書いても何か違いはありますか?
myClass.class.getResourceAsStream("myResource");