java暴难解决的问题

来源:百度知道 编辑:UC知道 时间:2024/05/07 13:42:29
判断两个类的字段名是否相等,如果相等则把类A字段的值依次赋值给类B.
这怎么实现 求高手指教...
=======================
小弟被人称为人品王. 回答的好分数从来不少...
希望能给出代码. 我从昨天闷到现在都没写出来....
倒,小兄弟,我学java的历史比你长一点点....目前equals还是一直用来判断字符串用..
能判断一个对象 怎么判断对象的字段?

======================
谢谢那位细心写代码的兄弟,.最重要的是写成通用的. 要是不通用的话我早写出来了.
是两个pojo类.对比字段.
===================
晕 在csdn解决了..
这分数给谁呢?
===================
好的 四楼的兄弟我等你, 我也用class field的方法写过,可是没写出来. 哎 我java的基础太差了!

兄弟,我帮你一下把,^_^。
这是一个通用的解决办法,不但可以满足public的字段域的赋值,也可以满足private 类型的字段域(有setter和getter)
================================实现过程==================================

/**
* 获取对象指定名称的方法对象
* @param o
* @param methodName 方法名称
* @return
*/
public static Method getObjectMethodRef(Object o,String methodName){
if(o==null){
return null;
}

Method[] methods=o.getClass().getDeclaredMethods();
if(methods!=null && methods.length>0){
for(int i=0;i<methods.length;i++){
if(methods[i].getName().equalsIgnoreCase(methodName)){
return methods[i];
}
}
}

return null;
}

/**
* 获取对象的属性的值
* @param targetObj 对象
* @param method 取值方法名称
* @return
*/
public static Object getFieldValue(Object targetObj,Method method){
try{
return method.invoke(targetObj,null);
}
catch(Exception e){
e.printStackTrac