`
wanxiaotao12
  • 浏览: 456054 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java.beans.PropertyEditor介绍与用法, 类型转换器、属性编辑器

阅读更多

在很多框架里面, 我们需要将一个字符串转换成对应的对象, 如在spring的bean配置文件中, 将字符串转换成Integer, Double, Date日期, jdk提供的常见的几种属性转换如下图:


 

用法如下:

 

DoubleEditor doubleEditor = new DoubleEditor();
doubleEditor.setAsText("12.12");
Double d = (Double)doubleEditor.getValue();
System.out.println(d);

 

主要步骤:

1、根据类型转换需要, 创建对应的属性转换器

 

2、调用setAsText()方法, 参数为需要转换的字符串,

 

3、调用getValue获取转换后的对象

 

自定义属性编辑器的步骤:

1、自定义属性编辑器类继承PropertyEditorSupport

2、重写setAsTest方法, 在方法中创建需要转换的对象,并使用重写方法的参数,给创建的对象属性设值, 并setValue(创建的对象)

 

<!--EndFragment-->

除了jdk提供的几种属性转换器, 如:将一个字符串, 转换成自定义的User对象,

//字符串转换后的User对象
public class User {
    private String userName;

    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
}

//User属性编辑器, 需要继承PropertyEditorSupport, 重写setAsTest方法
public class UserPropertyEditor extends PropertyEditorSupport{
    @Override
    public void setAsText(String text) throws IllegalArgumentException {
        String[] args = text.split(",");
        User user = new User();
        user.setUserName(args[0]);
        user.setAge(Integer.parseInt(args[1]));

        setValue(user);
    }
}


//测试类
public class Demo {
    @Test
    public void testPropertyEditor() {
        UserPropertyEditor editor = new UserPropertyEditor();

        editor.setAsText("wan,30");

        User user = (User) editor.getValue();
        System.out.println(user.getUserName() + "," + user.getAge());
    }
}

 

 


 

  • 大小: 33.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics