`
请输入用户名
  • 浏览: 45891 次
  • 性别: Icon_minigender_1
  • 来自: martian
社区版块
存档分类
最新评论

java利用反射校验某对象中对象中某项属性的值是否和期望的相同

阅读更多
原理是将传入的属性名,拼接成 get方法(布尔类型需另作处理,这里没用到就没写),进行调用并获得返回值,将这个返回值 和 wishValue进行比较。
    /**
     * 校验 product对象中 某项属性的值是否和期望的相同
     *
     * @param attribute
     *            注意:首字符可以小写,typeId ==> TypeId ==> getTypeId
     * @param wishValue
     * @param pt
     * @return

也可以将对象转换成为map之后再做比较,那样的话适用于多对 校验,只要校验一对的话,这个方法比较适合
     */
    @SuppressWarnings("unused")
    private Boolean checkAttrEqual(String attribute, String wishValue, Product pt) {

      attribute = attribute.substring(0, 1).toUpperCase() + attribute.substring(1);
      try {
          Method method = pt.getClass().getDeclaredMethod("get" + attribute, null);
          String realValue = (String) method.invoke(pt, null);
          return wishValue.equals(realValue);
      } catch (Exception ex) {
          ex.printStackTrace();
      }
      return false;
    }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics