黑马程序员技术交流社区
标题:
object对象转换为实际类型
[打印本页]
作者:
yin1031468524
时间:
2013-6-1 18:58
标题:
object对象转换为实际类型
本帖最后由 yin1031468524 于 2013-6-4 17:54 编辑
有一个公用的方法public void buildObject(Object obj),接收参数是一个Object对象。其他类会调用此方法,比如客户类new了一个Person并set了一系列属性值,调用buildObject方法后传入person。
这时候buildObject接收过来,但是并不知道对方传入的是何种对象,请问在这样的情况下,有什么办法能够将object对象转换为它本身的类型,并get到属性值
作者:
Super_Class
时间:
2013-6-1 19:15
进行健壮性判断
作者:
a464538715
时间:
2013-6-3 00:57
public class Test1 {
void buidObject(Object object) throws Exception {
// 获取对象名
System.out.println(object.getClass().getName());
// 获取对象的方法名
Method[] methods = object.getClass().getMethods();
// 遍历
for(Method method : methods) {
System.out.println(method.getName());
}
// 使用下面的方法调用person对象的方法
// object.getClass().getMethod(name, parameterTypes);
/*
* 例如:
* System.out.println(object.getClass().getMethod("getName", null).invoke(object, null) + "......");
*/
}
public static void main(String[] args) throws Exception {
Person person = new Person();
person.setName("mother fuck");
new Test1().buidObject(person);
}
}
作者:
a464538715
时间:
2013-6-3 00:57
直接把代码COPY进去就懂了 给分吧
作者:
王林涛
时间:
2013-6-3 03:19
当然用多态啊,你想要接受一个Object类型的参数,要用向上转型
Object o = new Person(); //Person为子类型Object为父类型,多态中的转型,先上转型
作者:
a464538715
时间:
2013-6-3 12:35
日 我回答的对不对啊
作者:
a464538715
时间:
2013-6-3 12:35
日 我回答的对不对啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2