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)
- 已在此处答复:链接
- @编码员ACJHP:不是真的,或者我没有找到它。但问题是不同的。
1 2 3 4 5 6
| package a;
public class A {
public String toString () {
return"I am an" + A. class. getName();
}
} |
应该做的伎俩。 P / < >
改变: P / < >
到的 P / < >
- this.class不起作用-"类文本是一个表达式,由类、接口、数组或基元类型的名称后跟`.'和标记类组成。它的计算结果是类类型的对象,命名类型(或void)的类对象。"
就在所有的超级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();
} |