如何在 Java 中获取 Child Class 接口的 Parent 名称
How to Get Child Class Name of a Parent Interface in Java
我想获取由接口实现的child class名称。
例如
public interface A
public class B implements A
public class C implements A
...
在我的代码中,我声明了接口 A 并将值设置为这些 class 之一。所以我有这个:
A a = object.getA();
现在我想获取当前的 child class 名称,例如 B、C 或其他名称,但我不想使用 instanceof 来获取它,因为我有很多 child classes 这使得代码不必要的长。
我基本上是在寻找这个,但 getChild() 当然不存在。
a.getChild().getClass().getName()
提前致谢!
如果我对问题的理解正确,听起来你要找的是:
String name = a.getClass().getName();
// Or
String simpleName = a.getClass().getSimpleName();
如果对象 «a» 的 class 是 B 的实例,则 getSimpleName() 将 return “B”。 return 如果 «a» 是 C 的一个实例,则为“C”,依此类推。
这会起作用。
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());
}
}
我想获取由接口实现的child class名称。 例如
public interface A
public class B implements A
public class C implements A
...
在我的代码中,我声明了接口 A 并将值设置为这些 class 之一。所以我有这个:
A a = object.getA();
现在我想获取当前的 child class 名称,例如 B、C 或其他名称,但我不想使用 instanceof 来获取它,因为我有很多 child classes 这使得代码不必要的长。 我基本上是在寻找这个,但 getChild() 当然不存在。
a.getChild().getClass().getName()
提前致谢!
如果我对问题的理解正确,听起来你要找的是:
String name = a.getClass().getName();
// Or
String simpleName = a.getClass().getSimpleName();
如果对象 «a» 的 class 是 B 的实例,则 getSimpleName() 将 return “B”。 return 如果 «a» 是 C 的一个实例,则为“C”,依此类推。
这会起作用。
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());
}
}