String到String的ValueConverter

时间:2014-03-18 11:44:08

标签: string grails valueconverter

我需要对所有字符串执行额外的修改,是否可以创建目标类型为String的ValueConverter,或者如果不是,我可以用其他方式执行此操作?

class StringValueConverter implements ValueConverter {
    @Override
    boolean canConvert(Object value) {
        value instanceof String
    }

    @Override
    Object convert(Object value) {
       //modifying value
    }

    @Override
    Class<?> getTargetType() {
        return String
    }
}

我需要在绑定之前完成

1 个答案:

答案 0 :(得分:0)

在Groovy中是的,你可以。有多种方式:

使用Extension Module就是其中之一。

另一种方法是使用运行时元编程,例如:

String.metaClass.flip = {
    delegate.reverse()
}

assert "Hello".flip() == "olleH"

上面是一个为metaClass of String添加方法的人为例子,但是你的例子中的转换方法也可以适用。

但是,如果您正在寻找canConvert添加健全性的扩展模块,那么扩展模块可以是健壮的,而运行时metaClass方法不需要它,因为它们仅适用于String