angelghost99 2009-04-03 13:57
浏览 348
已采纳

利用 反射 来过滤 bean中的null 属性

要写这么一个函数,参数是一个hibernate bean对象,利用反射 过滤掉其中的null属性,将null属性赋值为特定字符串,由于属性都是private的,不能用field.set方法来赋值。
或者有其他更好的方法,欢迎指教!

  • 写回答

1条回答 默认 最新

  • huxp1010 2009-04-03 16:27
    关注

    [code="java"]
    public static Object testRef(Object bo) {
    if(bo == null){
    return null;
    }
    Class clz = bo.getClass();
    Field[] f = clz.getDeclaredFields();
    try {
    for (int i = 0; i < f.length; i++) {
    f[i].setAccessible(true);
    if (f[i].get(bo) == null) {
    f[i].set(bo, "default");
    }
    }
    } catch (IllegalArgumentException e) {
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    }
    return bo;
    }
    [/code]
    对于类型可以再进行一些扩展 bo中均为private的String,其它类型可以再扩展

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算