当前位置: 代码迷 >> J2EE >> 怎么实例化参数calss 得到属性get set 方法
  详细解决方案

怎么实例化参数calss 得到属性get set 方法

热度:614   发布时间:2016-04-17 23:40:33.0
如何实例化参数calss 得到属性get set 方法?
package com.boeh.leshang.test;

import java.lang.reflect.Field;
import java.util.List;

public class TestReflect {
public static void main(String[] args) {

 List<APerson> listresult= dy(APerson.class);
//   for (int i=0;i<listresult.size();i++){
//   System.out.print(listresult.get(i).getName());
//   }
}

public static <T> List<T>  dy( Class<T> entityClass  ){  

/**
* 这里怎么得到entityClass的get set 方法呢? 然后把值返回给list集合
*/
return null;

}

class APerson {
private String name;
private String sex;

// APerson(){
// name= "John ";
// sex= "男 ";
// age=45;
// }

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;
}
}
}
------解决思路----------------------
抢个沙发。
看看这篇帖子能解决你的问题不 。
http://blog.csdn.net/chenyi0834/article/details/7639708
------解决思路----------------------
http://blog.csdn.net/chenyi0834/article/details/7639708
链接无法点吗 
------解决思路----------------------
如果你的get set 方法是 标准的话。

那就可以这么做.

Class entityClass   = Integer.class;

 Field[] temp = entityClass.getDeclaredFields();
 for (Field field : temp) {
 
 Class<?> tempc = field.getType();
 
  String fieldName =  field.getName();
  fieldName = fieldName.substring(0, 1).toUpperCase()+fieldName.substring(1, fieldName.length());
 if(temp.equals(boolean.class)){
 System.out.println("get "+ entityClass.getDeclaredMethod("is"+fieldName, null) );
 System.out.println("set "+ entityClass.getDeclaredMethod("set"+fieldName, boolean.class);

 }else {
 System.out.println("get "+ entityClass.getDeclaredMethod("get"+fieldName, null) );
 System.out.println("set "+ entityClass.getDeclaredMethod("set"+fieldName, boolean.class);

 }
 
 
 }

------解决思路----------------------
上面的 entryClass 是 Integer 类型的, 只是示例。 改成你自己的即可
  相关解决方案