java中 怎么通过Object对象参数,获取到在传值时的不同子类里的统一方法query

使用一个方法,传入一个Object对象(因为对象可能是子类user1,也可能是子类user2,有通用方法query在父类),那么我怎么通过object对象调用query方法?

1、首先建议你不要传入到Object对象,既然你知道他们有共同的父类(假设名字叫A),那么你就应该传入到A对象。这样你就可以调用A的query方法。
2、如果你一定要用Object对象,那么,你可以
if (xxx instanceof A) {
A a = (A) xxx;

// TODO

}
在上述TODO的位置写上你要执行的操作,其实就是强制类型转换。至于这个条件不满足的时候怎么操作,则是你要考虑的问题了。A表示你的父类,xxx表示你传入的参数名。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-28
传父类,既然继承了,就可以直接调用父类方法的
instensof可以判断是user1还是user2
直接子类重写父类的query方法。然后传入参数就写父类的。这样子不同子类调用query就不一样了
第2个回答  2015-01-28
不应该这样传 应该用泛型
你的方法应该改为
public <T> ffff(Class<T> xxx){}

还可以用 父类作为参数 更好 因为你的子类都有query 方法
相似回答