public PreparedStatement pstmSet(Connection conn,String className,String sql,Object obj)throws Exception{
PreparedStatement pstm=conn.prepareStatement(sql);
Class classPstm = Class.forName("java.sql.PreparedStatement");
Class classObj = Class.forName(className);

Field[] fields=classObj.getDeclaredFields();
for(int i = 0;i<fields.length;i++){
Field field = fields[i];
String fieldName = field.getName(); Class fieldType=field.getType();
String fieldTypeStr = fieldType.toString();
String fieldStr=fieldTypeStr.substring(fieldTypeStr.lastIndexOf("."));
String pstmFieldName="set"+fieldStr.substring(1); 

//Obj 的get 方法
Method objMethod=classObj.getMethod("get"+Character.toUpperCase(fieldName.charAt(0)) + fieldName.substring(1),new Class[]{});
Object result=objMethod.invoke(obj, new Object[]{}); //执行PreparedStatement的setXXX  方法
Method setMethod=classPstm.getMethod(pstmFieldName, new Class[] {int.class,fieldType});
if(fieldType==int.class)
{
setMethod.invoke(obj, new Object[]{new Integer(i+1),new Integer(result.toString())});
}else if(fieldType==String.class){
System.out.println("dfdfdfdfdfdf");
setMethod.invoke(obj, new Object[]{new Integer(i+1),result});
}

}

return pstm;
}java.lang.IllegalArgumentException: object is not an instance of declaring class
想了很久 不会解决