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