動的クラスのロードとインスタンス化
動的クラスのロードには、明示的なコンパイルを必要とせずに、プログラムによる Java クラスのロードとインスタンス化が含まれます。これは、Java 動的クラス読み込みメカニズムを利用することで実現されます。
あなたの場合、クラス名はプロパティ ファイルに保存され、クラスは IDynamicLoad インターフェイスを実装すると述べました。クラスを動的にインスタンス化するには、次の手順に従います。
クラスをロードします。
クラスをコンパイルします (まだコンパイルされていない場合):
ClassLoader を作成します:
クラスをロードしてインスタンス化します。
例:
// Load the class name from the property file Properties properties = new Properties(); properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("ClassName.properties")); String className = properties.getProperty("class", "DefaultClass"); // Compile the class if not already compiled if (!new File(className + ".class").exists()) { // Implementation for class compilation goes here } // Load and instantiate the class URLClassLoader classLoader = URLClassLoader.newInstance(new URL[] { new File("./").toURI().toURL() }); Class<?> cls = Class.forName(className, true, classLoader); Object instance = cls.getDeclaredConstructor().newInstance();
次の手順に従うことで、明示的なコンパイルに依存せずに、Java クラスを動的にコンパイルおよびインスタンス化できます。
以上がプロパティ ファイルから Java クラスを動的にロードしてインスタンス化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。