Java-在构造函数中获取实例化类的名称

时间:2018-12-12 05:30:06

标签: java reflection constructor

我想在类的(称为记录器)构造函数中设置一个字符串,将其命名为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()是正确的方法吗?

0 个答案:

没有答案