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 可以使用属性编辑器将字符串转换为对象,并赋值给属性。
参考资料
本文作者:不是很聪明
本文链接:https://www.cnblogs.com/baoboshi/p/16356016.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步