<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    推薦淘寶秋冬男裝熱賣網店

    追求無止境

    我的程序人生
    隨筆 - 31, 文章 - 2, 評論 - 20, 引用 - 0
    數(shù)據(jù)加載中……

    [轉] java.beans.PropertyEditor(屬性編輯器)簡單應用

    原文:http://m.tkk7.com/orangewhy/archive/2007/06/26/126371.html

    java.beans.PropertyEditor的從字義來看是一個屬性編輯器,但總覺得它的作用更像一個轉換器--從字符串轉換為類對象的屬性。

    java.beans.PropertyEditor接口定義的方法有好幾個,但是最重要為下面兩個:

     void setValue(Object value)

     void setAsText(String text) throws java.lang.IllegalArgumentException;

    一般地,我們要使用PropertyEditor時,并不直接實現(xiàn)此接口,而是通過繼承實現(xiàn)此接口的java.beans.PropertyEditorSupport來簡化我們的工作,在子類覆蓋setAsText方法就可以了,setValue方法一般不直接使用,在setAsText方法中將字符串進行轉換并產生目標對象以后,由調setAsText調用setValue來把目標對象注入到編輯器中。當然,你可用覆蓋更多的方法來滿足你的特殊要求。JavaBean的類和接口,被大部分spring包使用,可以從spring中學習更成熟的JavaBean使用方法。

    簡單的例子:

    實體類Person:

    public class Person
    {
        
    private String name;
        
    private String sex;
        
    private int age;
        
        
    public Person(String name, String sex, int age)
        
    {
            
    this.name = name;
            
    this.sex = sex;
            
    this.age = age;
        }

        
        
    public int getAge()
        
    {
            
    return age;
        }

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

        
    public String getName()
        
    {
            
    return name;
        }

        
    public void setName(String name)
        
    {
            
    this.name = name;
        }

        
    public String getSex()
        
    {
            
    return sex;
        }

        
    public void setSex(String sex)
        
    {
            
    this.sex = sex;
        }

        
        @Override
        
    public String toString()
        
    {
            
    return "Person["+name+""+sex+""+age+"]";
        }

    }

     

    Person的屬性編輯器:

    public class PersonPropertyEditor extends PropertyEditorSupport
    {
        
    public void setAsText(String text)
        
    {
            setValue(parseString(text));
        }


        
    private Object parseString(String text)
        
    {
            String[] parts 
    = tokenizeToStringArray(text, ""falsefalse);
            String name 
    = (parts.length > 0 ? parts[0] : "undefine");
            String sex 
    = (parts.length > 1 ? parts[1] : "undefine");
            
    int age = (parts.length > 2 ? Integer.valueOf(parts[2]) : 0);
            
    return (text.length() > 0 ? new Person(name, sex, age) : null);
        }


        
    private  String[] tokenizeToStringArray(String str, String delimiters, boolean trimTokens,
                                                        
    boolean ignoreEmptyTokens)
        
    {
            StringTokenizer st 
    = new StringTokenizer(str, delimiters);
            List tokens 
    = new ArrayList();
            
    while(st.hasMoreTokens())
            
    {
                String token 
    = st.nextToken();
                
    if(trimTokens)
                
    {
                    token 
    = token.trim();
                }

                
    if(!ignoreEmptyTokens || token.length() > 0)
                
    {
                    tokens.add(token);
                }

            }

            
    return toStringArray(tokens);
        }


        
    private  String[] toStringArray(Collection collection)
        
    {
            
    if(collection == null)
            
    {
                
    return null;
            }

            
    return (String[])collection.toArray(new String[collection.size()]);
        }

    }

     

    測試代碼:

        public static void main(String[] args)
        
    {
            PersonPropertyEditor editor 
    = new PersonPropertyEditor();
            editor.setAsText(
    "aSam,man,22");
            System.out.println(editor.getValue());
        }

     

    結果輸出:

    Person[aSam, man, 22]

    posted on 2009-11-20 22:07 追求無止境 閱讀(303) 評論(0)  編輯  收藏 所屬分類: Java


    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲va久久久噜噜噜久久 | 亚洲AV无码国产精品色| 好湿好大好紧好爽免费视频| 国产无遮挡色视频免费视频| 亚洲欧美成人综合久久久| 麻豆最新国产剧情AV原创免费| 亚洲avav天堂av在线不卡| 中出五十路免费视频| 亚洲无人区一区二区三区| 精品免费久久久久国产一区| 亚洲中文字幕无码专区| 一个人看www免费高清字幕| 亚洲精品网站在线观看不卡无广告| 免费在线观看亚洲| 亚洲国产成人五月综合网| 一区二区三区精品高清视频免费在线播放| 免费国产一级特黄久久| eeuss影院www天堂免费| 亚洲精品乱码久久久久久自慰 | 中国毛片免费观看| 国产成人A人亚洲精品无码| 欧洲精品99毛片免费高清观看| 777亚洲精品乱码久久久久久| 永久免费视频网站在线观看| 亚洲日本va在线观看| 日韩中文字幕在线免费观看| 曰批全过程免费视频观看免费软件| 国产亚洲美女精品久久久| 99国产精品视频免费观看| 亚洲熟妇av一区| 日韩激情淫片免费看| 一级毛片aaaaaa视频免费看| 亚洲av综合avav中文| 无码av免费毛片一区二区| 色天使色婷婷在线影院亚洲| 亚洲欧洲日产国码无码网站 | 日韩av无码成人无码免费| 日韩精品免费一线在线观看| 久久久久久a亚洲欧洲AV| 国产一卡2卡3卡4卡2021免费观看| 无码天堂va亚洲va在线va|