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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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表示你传入的参数名。
参考技术A 传父类,既然继承了,就可以直接调用父类方法的
instensof可以判断是user1还是user2
直接子类重写父类的query方法。然后传入参数就写父类的。这样子不同子类调用query就不一样了
参考技术B 不应该这样传 应该用泛型
你的方法应该改为
public <T> ffff(Class<T> xxx)

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

java中object数据怎么转换成json数据

你可以通过这个(json-lib-2.3-jdk15.jar)jar里的方法转换

JSONObject json = JSONObject.fromObject(Object);
如果对象数组
JSONArray json = JSONArray .fromObject(person);
参考技术A JSONObject对象的静态方法可以直接从bean转换为json
JSONObject json = JSONObject.fromObject(bean);

以上是关于java中 怎么通过Object对象参数,获取到在传值时的不同子类里的统一方法query的主要内容,如果未能解决你的问题,请参考以下文章

java 通过反射怎么获取方法中参数值

jniC++怎么返回java的对象数组

java中object数据怎么转换成json数据

java 通过反射怎么获取方法中参数值

Java获取Object属性值

在JAVA中,怎么利用反射获取一个方法?