/**
* 改類掩飾了如何通過java.bean的類去獲知bean中的屬性并調用相應的set get方法
*/
import java.beans.*;
import java.lang.reflect.Method;
public class JavaBeanInvoke {
public static void main(String args[])throws Exception{
test1();
}
public static void test1()throws Exception{
Person person = Person.class.newInstance();
BeanInfo beaninfo = Introspector.getBeanInfo(Person.class);
PropertyDescriptor[] porpertydescriptors = beaninfo.getPropertyDescriptors();
for(PropertyDescriptor pd:porpertydescriptors){
System.out.println(pd.getName());
if(pd.getName().endsWith("name")){
Method setMethod=pd.getWriteMethod();
Method getMethod=pd.getReadMethod();
setMethod.invoke(person,"ShenZiping");
System.out.println(getMethod.invoke(person));
break;
}
}
}
public static void test2() throws Exception{
Person person = Person.class.newInstance();
PropertyDescriptor pd = new PropertyDescriptor("age",Person.class);
Method setMethod = pd.getWriteMethod();
Method getMethod = pd.getReadMethod();
setMethod.invoke(person, 56);
System.out.println(getMethod.invoke(person));
}
}
* 改類掩飾了如何通過java.bean的類去獲知bean中的屬性并調用相應的set get方法
*/
import java.beans.*;
import java.lang.reflect.Method;
public class JavaBeanInvoke {
public static void main(String args[])throws Exception{
test1();
}
public static void test1()throws Exception{
Person person = Person.class.newInstance();
BeanInfo beaninfo = Introspector.getBeanInfo(Person.class);
PropertyDescriptor[] porpertydescriptors = beaninfo.getPropertyDescriptors();
for(PropertyDescriptor pd:porpertydescriptors){
System.out.println(pd.getName());
if(pd.getName().endsWith("name")){
Method setMethod=pd.getWriteMethod();
Method getMethod=pd.getReadMethod();
setMethod.invoke(person,"ShenZiping");
System.out.println(getMethod.invoke(person));
break;
}
}
}
public static void test2() throws Exception{
Person person = Person.class.newInstance();
PropertyDescriptor pd = new PropertyDescriptor("age",Person.class);
Method setMethod = pd.getWriteMethod();
Method getMethod = pd.getReadMethod();
setMethod.invoke(person, 56);
System.out.println(getMethod.invoke(person));
}
}
/**
* 代碼舉例了beanUtil包的普遍用法,需要apache的logging包和beanUtils包
*/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.*;
public class BeanUtilsInvoke {
public static void main(String args[])throws Exception{
test1();
test2();
test3();
test4();
myConvertTest();
}
public static void test1()throws Exception{
Person person = new Person();
BeanUtils.copyProperty(person, "name", "ShenZiping");
System.out.println("test1
"+person.getName());
}
public static void test2() throws Exception{
Person person = new Person();
Map<String, String> map = new HashMap<String, String>();
map.put("name", "ShenZiping");
map.put("age", "65");
BeanUtils.populate(person, map);
System.out.println("test2
"+person.getAge());
System.out.println("test2
"+person.getName());
}
public static void test3() throws Exception{
Person p1 = new Person();
Person p2 = new Person();
p1.setAge(98);
p1.setName("ShenZiping");
BeanUtils.copyProperties(p2, p1);
System.out.println("test3
"+p2.getAge());
System.out.println("test3
"+p2.getName());
}
public static void test4() throws Exception{
Person person = new Person();
Man man = new Man();
person.setName("ShenZiping");
BeanUtils.copyProperties(man, person);
System.out.println("test4
"+man.getName());
}
public static void myConvertTest(){
ConvertUtils.register(new Converter(){
public Object convert(Class clazz, Object value){
if(clazz==Date.class){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try{
return dateFormat.parse((String)value);
}catch(ParseException e){
throw new RuntimeException("invalid format");
}
}
return null;
}
}, Date.class);
Date date = (Date)ConvertUtils.convert("2010-01-15",Date.class);
System.out.println("myConvertTest
"+date);
}
}
* 代碼舉例了beanUtil包的普遍用法,需要apache的logging包和beanUtils包
*/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.*;
public class BeanUtilsInvoke {
public static void main(String args[])throws Exception{
test1();
test2();
test3();
test4();
myConvertTest();
}
public static void test1()throws Exception{
Person person = new Person();
BeanUtils.copyProperty(person, "name", "ShenZiping");
System.out.println("test1

}
public static void test2() throws Exception{
Person person = new Person();
Map<String, String> map = new HashMap<String, String>();
map.put("name", "ShenZiping");
map.put("age", "65");
BeanUtils.populate(person, map);
System.out.println("test2

System.out.println("test2

}
public static void test3() throws Exception{
Person p1 = new Person();
Person p2 = new Person();
p1.setAge(98);
p1.setName("ShenZiping");
BeanUtils.copyProperties(p2, p1);
System.out.println("test3

System.out.println("test3

}
public static void test4() throws Exception{
Person person = new Person();
Man man = new Man();
person.setName("ShenZiping");
BeanUtils.copyProperties(man, person);
System.out.println("test4

}
public static void myConvertTest(){
ConvertUtils.register(new Converter(){
public Object convert(Class clazz, Object value){
if(clazz==Date.class){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try{
return dateFormat.parse((String)value);
}catch(ParseException e){
throw new RuntimeException("invalid format");
}
}
return null;
}
}, Date.class);
Date date = (Date)ConvertUtils.convert("2010-01-15",Date.class);
System.out.println("myConvertTest

}
}