关于Java:如何查看包含实际代码的类名

how to see the class name containing the actual code

1
2
3
4
5
6
7
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"
  }
}

——

1
2
3
4
5
6
7
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"
  }
}

我还没有试过用this.getClass()super.getClass()。我怎么能把这个类的名称在toString()和()的编码getclass是真的吗?(一)

这只是我的一点简单的样品,就是尽量避免硬编码在文件名称中的第一类(a.java)


1
2
3
4
5
6
package a;
public class A {
  public String toString() {
    return"I am an" + A.class.getName();
  }
}

应该做的伎俩。 P / < >


改变: P / < >

1
getClass().getName()

到的 P / < >

1
A.class.getName()


就在所有的超级iterate P / < >

1
2
3
4
5
6
public String toString() {
  Class cl = getClass();
  while (cl.getSuperclass() != Object.class)
    cl = cl.getSuperclass();
  return cl.getName();
}