如何在 Java 中获取父接口的子类名称
我想获取由接口实现的子类名称。 例如,
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()
提前致谢!
I want to get the child class name which is implemented by an interface.
For example
public interface A
public class B implements A
public class C implements A
...
In my code I have declared the interface A and have set the value to one of these classes. So what I have is this:
A a = object.getA();
Now I want to get the current child class name, so B, C or whatever, but I don't want to do it with instanceof because I have many child classes which makes the code unnessesary long.
I am basically looking for this but getChild() doesn't exist of course.
a.getChild().getClass().getName()
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果我正确理解这个问题,听起来您正在寻找的是:
如果对象 «a» 的类是 B 的实例,则 getSimpleName() 将返回“B”。如果 «a» 是 C 的实例,则返回“C”,依此类推。
If I understand the question correctly, it sounds like what you're looking for is:
If the class of object «a» is an instance of B then getSimpleName() will return "B". It return "C" if «a» is an instance of C and so on.
这会起作用。
This will work.