求助!怎样根据输入的参数动态的生成类与对象 输入是一个list数组,里面的成员是String对象,现在要根据这个list数组自动生成一个javabean,javabean的成员是list数组的成员,而且list数组的长度不是固定的,每次的输入都可能不同。听说用java反射机制可以实现,但在网上找了很久也没找到好点的材料,小生不才,望各位csdn的xdjm能帮帮我.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 唉,一个复杂的问题....关于动态类生成...目前有2种可能的方法1.生成类的源文件,编译后动态载入......jsp就是这么做的2.用ASM一类工具修改字节码,在内存中操作类....麻烦啊麻烦 用BeanUtils可以生成动态javabean,已经解决了谢谢各位的关照~~ 楼主拿分来吧import java.io.*;import java.util.List;import java.util.ArrayList;public class BeanFactory { public static String BeanBuild(String beanName,List valueList){ String returnStr=""; returnStr+="public class "+beanName+"{\n"; for(int i=0;i<valueList.size();i++){ returnStr+="String "+(String)valueList.get(i)+";\n"; } for(int i=0;i<valueList.size();i++){ returnStr+="public void set"+(String)valueList.get(i)+"(String value){\n"+ "this."+(String)valueList.get(i)+"=value;\n}\n"; } for(int i=0;i<valueList.size();i++){ returnStr+="public String get"+(String)valueList.get(i)+"(){\n"+ "return this."+(String)valueList.get(i)+";\n}\n"; } returnStr+="}"; return returnStr; } public static void BeanComplier(String beanName,String beanContent){ com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main(); try{ File file=new File(beanName+".java"); String filename = file.getName(); System.out.println(filename); PrintWriter out = new PrintWriter(new FileOutputStream(file)); out.println(beanContent); out.flush(); out.close(); String[] test = new String[] {"-d", System.getProperty("user.dir"),filename }; javac.compile(test); } catch(Exception e){ e.printStackTrace(); } } public static void main(String[] s){ List list=new ArrayList(); list.add("name"); list.add("description"); BeanComplier("Test",BeanBuild("Test",list)); }} 新鲜的面试题,来看看啊 各位大佬,有谁在C语言环境下VC++调试过JNI的 IOException编译通不过 连接数据库问题!急!!! JTable的问题 菜鸟有问?这是怎么回事?谢谢 rmi的问题 请教:一个毕业设计 最简单的问题,JDK1。4。0的配置问题!!! 关于用Jprint java打印的问题,请大家进来看看(路人甲、华仔哥) java怎么提取硬盘ID呢?各位大侠多帮助啊。 如何把字符串"Wed, 11 July 2001 08:49:37 GMT"转换成Date或Calendar
关于动态类生成...目前有2种可能的方法
1.生成类的源文件,编译后动态载入......jsp就是这么做的
2.用ASM一类工具修改字节码,在内存中操作类....麻烦啊麻烦
谢谢各位的关照~~
import java.io.*;
import java.util.List;
import java.util.ArrayList;
public class BeanFactory {
public static String BeanBuild(String beanName,List valueList){
String returnStr="";
returnStr+="public class "+beanName+"{\n";
for(int i=0;i<valueList.size();i++){
returnStr+="String "+(String)valueList.get(i)+";\n";
}
for(int i=0;i<valueList.size();i++){
returnStr+="public void set"+(String)valueList.get(i)+"(String value){\n"+
"this."+(String)valueList.get(i)+"=value;\n}\n";
}
for(int i=0;i<valueList.size();i++){
returnStr+="public String get"+(String)valueList.get(i)+"(){\n"+
"return this."+(String)valueList.get(i)+";\n}\n";
}
returnStr+="}";
return returnStr;
}
public static void BeanComplier(String beanName,String beanContent){
com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();
try{
File file=new File(beanName+".java");
String filename = file.getName();
System.out.println(filename);
PrintWriter out = new PrintWriter(new FileOutputStream(file));
out.println(beanContent);
out.flush();
out.close();
String[] test = new String[] {"-d", System.getProperty("user.dir"),filename };
javac.compile(test);
}
catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] s){
List list=new ArrayList();
list.add("name");
list.add("description");
BeanComplier("Test",BeanBuild("Test",list));
}
}