小编Xj *_*hen的帖子

groovy 中的 get 与 getProperty

令我惊讶的是!

根据groovy的文档,groovy可以使用“getProperty”方法来获取对象的属性。因此,当我想更改获取特殊对象属性的行为时,我使用类别类来重写“getProperty”方法。然而,它不起作用。最后,我发现groovy框架使用类别类中的“get”方法来获取属性,即使对象不是地图。我的问题是,这是一个错误还是像这样工作。

这是类别类。

class DynaBeanExtension {

    public static void setProperty(DynaBean bean, String propertyName, def newValue) {
        try {
            PropertyUtilsBean pu = null;
            if (bean instanceof CustomWrapDynaBean) {
                pu = bean.propertyUtilsBean;
            }
            if (pu != null) {
                pu.setProperty(bean, propertyName, newValue);
            } else {
                PropertyUtils.setProperty(bean, propertyName, newValue);
            }
        } catch (IllegalArgumentException ex) {
            bean.propertyMissing(propertyName, newValue);
        }
    }

    public static def getProperty(DynaBean bean, String propertyName) {
        try {
            PropertyUtilsBean pu = null;
            if (bean instanceof CustomWrapDynaBean) {
                pu = bean.propertyUtilsBean;
            }
            if (pu …
Run Code Online (Sandbox Code Playgroud)

groovy

5
推荐指数
1
解决办法
8071
查看次数

标签 统计

groovy ×1