java如何使用反射更改属性值
是否可以使用反射更改类属性的值
下面是我的课堂:-
public class LoggerManager {
private static LoggerManager _instance = new LoggerManager();
private LoggerManager() {
}
public static LoggerManager getInstance() {
return _instance;
}
public Logger getLogger(String FQCN) {
Logger logger = Logger.getLogger(FQCN);
logger.setLevel(Level.INFO);
return logger;
}
}
我想使用反射更改_instance
变量的值
基本上我想把它的值改成_instance = new NewLoggerManager();
前提是NewLoggerManager extends LoggerManager
我知道如何调用方法,但是如何调用这个方法,有可能吗
# 1 楼答案
_instance
字段的Field
定义。使用“声明的”方法,因为它也可以获取私有字段null
作为目标对象传递,因为字段是static
# 2 楼答案
我不知道你为什么需要这样做,基本上@Bozho已经给了你正确的答案,但我想建议你避免这样的陷阱。在这种情况下,您最好使用依赖项注入,这样它就变得更加清晰和友好,可以为您完成这项工作。试着读一下GUICE