我需要对所有字符串执行额外的修改,是否可以创建目标类型为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
}
}
我需要在绑定之前完成
答案 0 :(得分:0)
在Groovy中是的,你可以。有多种方式:
使用Extension Module就是其中之一。
另一种方法是使用运行时元编程,例如:
String.metaClass.flip = {
delegate.reverse()
}
assert "Hello".flip() == "olleH"
上面是一个为metaClass of String添加方法的人为例子,但是你的例子中的转换方法也可以适用。
但是,如果您正在寻找canConvert
添加健全性的扩展模块,那么扩展模块可以是健壮的,而运行时metaClass方法不需要它,因为它们仅适用于String
类