我想在类的(称为记录器)构造函数中设置一个字符串,将其命名为tag
。然后tag
应该基于实例化此记录器的类,并且如果在不同的类中实例化,则应打印具有相应名称的语句。
我期望像下面这样:
class Logger {
private String tag;
public Logger() {
tag = this.getClass().getEnclosingClass().getSimpleName();
}
public printTag() {
System.out.println(tag);
}
然后在实例化类中:
Logger l = new Logger();
l.printTag();
这引发: java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'java.lang.String java.lang.Class.getSimpleName()'
这可能吗? getEnclosingClass()
是正确的方法吗?