我想獲取由介面實作的子類名稱。例如
public interface A
public class B implements A
public class C implements A
...
在我的代碼中,我宣告了介面 A 并將值設定為這些類之一。所以我所擁有的是:
A a = object.getA();
現在我想獲取當前的子類名,所以 B、C 或其他什么,但我不想用 instanceof 來做,因為我有很多子類,這使得代碼很長。我基本上是在尋找這個,但 getChild() 當然不存在。
a.getChild().getClass().getName()
提前致謝!
uj5u.com熱心網友回復:
如果我正確理解了這個問題,聽起來您正在尋找的是:
String name = a.getClass().getName();
// Or
String simpleName = a.getClass().getSimpleName();
如果物件 ?a? 的類是 B 的實體,則 getSimpleName() 將回傳“B”。如果 ?a? 是 C 的一個實體,則回傳 "C",依此類推。
uj5u.com熱心網友回復:
這將起作用。
interface A {
}
class B implements A {
}
class C implements A {
}
class Test {
public static void main (String[] args) {
A a = new C();
System.out.println(a.getClass().getName());
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/445243.html
