如何用Java确定对象的类?
B类和C类扩展A类。这是D类中的方法实现,称为dmethod(B或C的对象) ,它除了可以是B或C对象的单个参数外。
调用方法可以是
如何为这种情况编写代码?
答案 0 :(得分:2)
在 dmethod(对象o)内,
使用:
if(o instanceof B) {
// ...
}
else if( o instanceof C) {
// ...
}
查明传入的参数是B对象还是C对象?
更多关于instanceof。
答案 1 :(得分:0)
要确定对象的类,请从:
开始Object.getClass()
然后从那里开始。
一旦您拥有特定对象的实际Class
对象,您就可以查询the API以获取其名称等信息。
对于问题的第(2)部分,如果B和C都扩展为A,那么您可以像这样定义dmethod()
:
dmethod(A a)
然后,该方法可以对B和C共有的任何事物起作用,即。在他们的超类(A)中。如果您需要特定于B或C的内容,您可以将'a'向下转换为B或C(使用instanceof检查以查看'a'的类型)。
你可以根据你的问题定义两个版本的dmethod(),一个接受B,一个接受C.重载支持这个。