有没有更好的方法来获取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()