鍘熸枃錛歨ttp://www.tkk7.com/orangewhy/archive/2007/06/26/126371.html
java.beans.PropertyEditor鐨勪粠瀛椾箟鏉ョ湅鏄竴涓睘鎬х紪杈戝櫒錛屼絾鎬昏寰楀畠鐨勪綔鐢ㄦ洿鍍忎竴涓漿鎹㈠櫒錛嶏紞浠庡瓧絎︿覆杞崲涓虹被瀵硅薄鐨勫睘鎬с?/p>
java.beans.PropertyEditor鎺ュ彛瀹氫箟鐨勬柟娉曟湁濂藉嚑涓紝浣嗘槸鏈閲嶈涓轟笅闈袱涓細(xì)
void setValue(Object value)
void setAsText(String text) throws java.lang.IllegalArgumentException;
涓鑸湴錛屾垜浠浣跨敤PropertyEditor鏃訛紝騫朵笉鐩存帴瀹炵幇姝ゆ帴鍙o紝鑰屾槸閫氳繃緇ф壙瀹炵幇姝ゆ帴鍙g殑java.beans.PropertyEditorSupport鏉ョ畝鍖栨垜浠殑宸ヤ綔錛屽湪瀛愮被瑕嗙洊setAsText鏂規(guī)硶灝卞彲浠ヤ簡(jiǎn)錛宻etValue鏂規(guī)硶涓鑸笉鐩存帴浣跨敤錛屽湪setAsText鏂規(guī)硶涓皢瀛楃涓茶繘琛岃漿鎹㈠茍浜х敓鐩爣瀵硅薄浠ュ悗錛岀敱璋僺etAsText璋冪敤setValue鏉ユ妸鐩爣瀵硅薄娉ㄥ叆鍒扮紪杈戝櫒涓傚綋鐒?dòng)灱屼綘鍙敤瑕嗙洊鏇村鐨勬栆?guī)硶鏉ユ弧瓚充綘鐨勭壒孌婅姹傘侸avaBean鐨勭被鍜屾帴鍙o紝琚ぇ閮ㄥ垎spring鍖呬嬌鐢紝鍙互浠巗pring涓涔?fàn)鏇存垚鐔熺殑JavaBean浣跨敤鏂規(guī)硶銆?/p>
綆鍗曠殑渚嬪瓙錛?/p>
瀹炰綋綾籔erson錛?/p>
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鐨勫睘鎬х紪杈戝櫒錛?/p>
public class PersonPropertyEditor extends PropertyEditorSupport


{
public void setAsText(String text)

{
setValue(parseString(text));
}

private Object parseString(String text)

{
String[] parts = tokenizeToStringArray(text, ", ", false, false);
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()]);
}
}
嫻嬭瘯浠g爜錛?/p>
public static void main(String[] args)

{
PersonPropertyEditor editor = new PersonPropertyEditor();
editor.setAsText("aSam,man,22");
System.out.println(editor.getValue());
}
緇撴灉杈撳嚭錛?/p>
Person[aSam, man, 22]

]]>