在Java中,可以通過配置文件實現類的動態加載。以下是一個簡單的步驟來實現這個功能:
className=com.example.MyClass
Properties
類加載配置文件,并獲取類名:import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class DynamicClassLoading {
public static void main(String[] args) {
Properties properties = new Properties();
try (InputStream inputStream = DynamicClassLoading.class.getClassLoader().getResourceAsStream("config.properties")) {
properties.load(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
String className = properties.getProperty("className");
System.out.println("Loading class: " + className);
}
}
Class.forName()
方法加載類,并創建實例:try {
Class<?> clazz = Class.forName(className);
Object instance = clazz.newInstance();
System.out.println("Created instance of: " + instance.getClass().getName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}
MyClass
有一個名為doSomething()
的方法,可以這樣調用它:try {
Method method = clazz.getMethod("doSomething");
method.invoke(instance);
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
e.printStackTrace();
}
將上述代碼片段組合在一起,就可以實現通過配置文件動態加載類并調用其方法的功能。請注意,這個示例僅適用于具有無參構造函數的類。如果類具有不同的構造函數,則需要使用clazz.getConstructor()
方法并傳遞相應的參數。