string surl = string.Format("{0}://{1}",
HttpContext.Current.Request.Url.Scheme,
HttpContext.Current.Request.Url.Authority);
-
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"
}
}
我还尝试了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()
。如何获取实际编码toString()和getClass()的类名? (A.A)
这只是一个简化的示例,我的观点是如何避免在第一个文件(A.java)中对基类名称进行硬编码
答案 0 :(得分:5)
package a;
public class A {
public String toString() {
return "I am an " + A.class.getName();
}
}
应该这样做。
答案 1 :(得分:1)
只是迭代所有超级
public String toString() {
Class cl = getClass();
while (cl.getSuperclass() != Object.class)
cl = cl.getSuperclass();
return cl.getName();
}
答案 2 :(得分:1)
更改:
getClass().getName()
进入
A.class.getName()