如何查看包含实际代码的类名

dat*_*ler 3 java

package a;
public class A {
  public String toString() {
    // return "I am an a.A"; is too primitive ;) 
    return "I am an " + getClass().getName(); // should give "a.A"
  }
}
Run Code Online (Sandbox Code Playgroud)

-

package a;
public class X extends A {
  public static void main(String[] args) {
    X test = new X();
    System.out.println(test);  // returns "I am an a.X"
  }
}
Run Code Online (Sandbox Code Playgroud)

我也试过this.getClass()super.getClass().如何获取实际编码toString()和getClass()的类名?(AA)

这只是一个简化的示例,我的观点是如何避免在第一个文件(A.java)中对基类名称进行硬编码

glg*_*lgl 5

package a;
public class A {
  public String toString() {
    return "I am an " + A.class.getName();
  }
}
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩.