我正在尝试向我的程序添加一个动态日志记录类(用于更改日志消息的去向,例如 System.out 或文件)。它扩展了Logger
具有静态方法的基本抽象类log(String)
。是否可以设置记录器类,然后在不创建记录器实例或使用反射的情况下调用日志方法?
像这样的东西:
public class MainController {
private Class<? extends Logger> mLogger;
// ...
public void setLogger(Class<? extends Logger> logger) {
mLogger = logger;
}
public Class<? extends Logger> getLogger() {
return mLogger;
}
// ...
}
public class BrokenTest {
// ...
private void showErrorMessage(String message) {
mMainController.getLogger().log(message); // Can't call .log on Class
}
}