其他分享
首页 > 其他分享> > PropertyEditor

PropertyEditor

作者:互联网

java.beans.PropertyEditor 就是一个属性编辑器,用来将字符串转换为指定类型的对象。主要有两种方法:

void setValue(Object value);
void setAsText(String text);

该接口下面有一个实现类 java.beans.PropertyEditorSupport,如果你想转换一个自定义格式的字符串到对象,只需要继承这个实现类并在子类中重写 setAsText 方法。

示例分为两部分:首先演示一个简单实用的 PropertyEditor,然后演示 Spring 的 org.springframework.beans.factory.config.CustomEditorConfigurer 的使用。

定义 User.java 类:

public class User {
    private String name;
    private int age;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString(){
        return name + " : " + age;
    }
}

属性编辑器类 UserPropertyEditor.java:

import java.beans.PropertyEditorSupport;
public class UserPropertyEditor extends PropertyEditorSupport {
    @Override
    public void setAsText(String text){
        String[] sts = text.split(",");
        User user = new User();
        user.setName(sts[0]);
        user.setAge(Integer.parseInt(sts[1]));
        setValue(user);
    }
}

测试类:

public class PropertyEditorDemo {
    public static void main(String[] args) {
        UserPropertyEditor upe = new UserPropertyEditor();
        upe.setAsText("Ellison,60");
        // 返回 User 实例
        System.out.println(upe.getValue());
    }
}

转换完成的最终对象通过 setValue 方法保存起来,当需要用到的时候可以通过 getValue 方法获取到。

这个属性编辑器一般配合 Spring 使用;当进行依赖注入的时候,Spring 可以使用属性编辑器将字符串转换为对象,并赋值给属性。

相关文章

PropertyEditorRegistrar(https://www.cnblogs.com/superylg/p/16348676.html)

参考资料

java.beans.PropertyEditor и CustomEditorConfigurer(https://russianblogs.com/article/4812368884/)

标签:java,name,PropertyEditor,public,age,void,String
来源: https://www.cnblogs.com/superylg/p/16356016.html