针对trim等行为的Java自定义注释

时间:2018-04-02 07:44:08

标签: java annotations trim

我必须编写如下的修剪功能。

public void setUserComment (String value) {
    this.userComment  = (value != null) ? value.trim() : value;
}

但是这需要在我们现有地方的许多地方应用。 任何使用自定义注释的想法。等。

@MyCustomTrim
public void setUserComment (String value) {
    this.userComment  = value;
}

2 个答案:

答案 0 :(得分:0)

在控制器级别尝试以下代码:

@InitBinder
public void setAllowedFields(WebDataBinder dataBinder) {

dataBinder.registerCustomEditor(String.class, new PropertyEditorSupport() {
    @Override
    public void setAsText(String text) {
        if (text == null) {
            return;
        }
        setValue(text);
    }

    @Override
    public String getAsText() {
        Object value = getValue();
        return (value != null ? value.trim().toString() : "");
    }
});
}

答案 1 :(得分:0)

处理java注释结果(以标准方式)创建新类 我不认为你在寻找那个。

作为替代方案,您可以使用AOP(AspectJ或Spring) 你可以举例如:

  • 定义执行重复处理的方面(修剪String如果不为空)
  • 创建您自己的注释(作为您的问题)
  • 在要应用方面的方法上添加注释
  • 指定具有此批注的方法执行的切入点。

由于我不知道您是否使用Spring,并且您想要应用重复处理的对象是否是Spring bean,我宁愿不给出具体的解决方案。