有没有更好的方法来获取java中的当前类变量?

现在我正在做这样的事情:

private static Logger logger = LoggerFactory .getLogger(MasterController.class); 

有没有比使用类名称(MasterController)更好的方法? 也许通用的东西?

这个怎么样:

 private final Logger logger = LoggerFactory.getLogger(getClass()); 

此方法可避免复制+粘贴错误。

我已经读过(不记得几年前在哪里)Logger实例非常便宜,并且如果你的类的每个实例都有自己的记录器并不重要。

但是如果你没有被说服,并且你想让Logger实例保持静态,那么它应该是最终的并且是大写的,如下所示:

 private static final Logger LOG = LoggerFactory.getLogger(MasterController.class); 

以下链接有一个有趣的方法:

http://www.rgagnon.com/javadetails/java-0402.html

粘贴在这里是为了方便:

 public class ClassFromStatic { public static void main(java.lang.String[] args) { someStaticMethod(); } public static void someStaticMethod() { System.out.println ("I'm in " + new CurrentClassGetter().getClassName() + " class"); } public static class CurrentClassGetter extends SecurityManager { public String getClassName() { return getClassContext()[1].getName(); } } } 

不确定你需要什么,但你总是可以在Object上调用getClass()