之前做
我需要对所有字符串执行额外的修改,是否有可能使ValueConverter具有目标类型为String
,或者如果没有,我可以通过其他方式做到这一点?
class StringValueConverter implements ValueConverter {
@Override
boolean canConvert(Object value) {
value instanceof String
}
@Override
Object convert(Object value) {
//modifying value
}
@Override
Class<?> getTargetType() {
return String
}
}
我需要在绑定
在Groovy中可以。有多种方法:
Using Extension Module就是其中之一。
另一种方法是使用运行时元编程,例如:
String.metaClass.flip = {
delegate.reverse()
}
assert "Hello".flip() == "olleH"
上面是一个人为的例子,向String的metaClass添加方法,但是你的例子中的convert方法也可以适合。
然而,扩展模块是什么可以在您的情况下是健壮的,如果您正在寻找canConvert
添加健全,这将不需要运行时元类方法,因为它们只适用于String
类。