【发布时间】:2014-08-01 13:41:45
【问题描述】:
是否可以在静态上下文中确定实现类的类。鉴于我想在超类中创建一个记录器,该记录器将其消息记录在实现类的类名下。
目前我正在尝试使用这种方法:
public abstract class GenericDao<T, ID extends Serializable>
{
protected static Logger logger = Logger.getLogger(new Object() { }.getClass().getEnclosingClass());
...
}
但我仍然得到超类。有什么办法可以做到这一点,或者当我可以访问“this”时,我应该放弃并将该类包含在实际的日志记录方法中。
【问题讨论】:
-
不是答案,而是另一种选择:让您的记录器保持私有(这确实需要您为每个实现类重新声明它们)。
-
即使静态变量可以属于 GenericDao。子类型不会有自己的副本。
标签: java class inheritance static