Java反射是一種強大的機制,它允許程序在運行時檢查和操作類、接口、字段和方法。通過反射,你可以實現以下幾種方法來提高代碼的靈活性:
Class<?> clazz = Class.forName("com.example.MyClass");
Object instance = clazz.getDeclaredConstructor().newInstance();
Field privateField = MyClass.class.getDeclaredField("privateField");
privateField.setAccessible(true);
privateField.set(instance, newValue);
public class MyFactory {
public static <T> T createInstance(Class<T> clazz) throws Exception {
return clazz.getDeclaredConstructor().newInstance();
}
}
public interface Plugin {
void execute();
}
public class PluginManager {
private List<Plugin> plugins = new ArrayList<>();
public void registerPlugin(Plugin plugin) {
plugins.add(plugin);
}
public void executePlugins() {
for (Plugin plugin : plugins) {
plugin.execute();
}
}
}
總之,Java反射是一種強大的工具,可以幫助你編寫更靈活、可擴展和可維護的代碼。然而,反射也有一些性能開銷和安全隱患,因此在使用反射時要注意權衡利弊。