import java.lang.reflect.Field; import java.lang.reflect.Method; import com.UserInfo; public class AutoSetJavaBean { /** * 方法说明: * @param args * @throw */ public static void main(String[] args) { String a=""; try { a = AutoSetJavaBean.getFileds(UserInfo.class,"ui","rs"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(a); } /** * 方法说明:自动生成set javabean * @param cla 要生成的类 * @param alias 类得别名 * @param rs resultSet别名 * @return * @throws Exception * @throw * example * UserInfo ui= new UserInfo(); ui.setFCode(rs.getString("fCode")); ui.setFName(rs.getString("fName")); */ private static String getFileds(Class cla,String alias,String rs)throws Exception { if(cla==null){ throw new Exception("类不能为空!"); } if(null==alias||"".equals(alias)){ throw new Exception("类 别名不能为空!"); } if("".equals(rs)||null==rs){ rs="rs"; } //得到get set方法列表 Method[] meths = cla.getDeclaredMethods(); // 得到当前类字段名称 Field[] fileds = cla.getDeclaredFields(); int ix=cla.toString().lastIndexOf("."); String claStr=cla.toString().substring(ix+1,cla.toString().length()); StringBuffer sb=new StringBuffer(claStr+" "+alias+"= new "+claStr+"();"); sb.append("/r/n"); int methodLen=meths.length;//方法长度 int count=0; for (int j = 0; j < methodLen; j++) { Method method=meths[j]; String mname=method.getName(); if(mname.indexOf("set")!=-1){//只取set方法 count++; Field field = fileds[j-count]; sb.append(alias+"."); sb.append(method.getName()); sb.append("("); sb.append("rs.get"+getType(field.getType().toString())+"(/""); sb.append(field.getName()+"/")"); sb.append(");"); sb.append("/r/n"); } } return sb.toString(); } private static String getType(String types){ String type=""; if(types.indexOf("short")!=-1){ type="Short"; } if(types.indexOf("int")!=-1){ type="Int"; } if(types.indexOf("String")!=-1){ type="String"; } if(types.indexOf("BigDecimal")!=-1){ type="BigDecimal"; } if(types.indexOf("float")!=-1){ type="Float"; } if(types.indexOf("double")!=-1){ type="Double"; } return type; } }