怎么动态的创建成员变量 我有一个java程序,有好多好多的成员变量(几百个),一个一个的创建得累死,有没有什么好的方法。还有java能用字符拼变量名吗。怎么拼。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String ss=class.forname("java.long.String");以前用过这个,你先参考一下。如果整型的话我想也可以是这样:Integer ii=class.forname("java.long.Integer"); 还有java能用字符拼变量名吗。怎么拼。谢谢没懂=========我有一个java程序,有好多好多的成员变量(几百个),一个一个的创建得累死,有没有什么好的方法。 你的设计有问题,如果没问题的话,你考虑用 Map 吧,通过Map 来存取数据, key 就是你的 变量名,当然是字符串的形式 java 不是动态语言 不会动态创建这与反射是两码事。 一个一个输入吧,如果是创建get set方法到有快捷方法。 创建get set方法可不可以? 不是java的问题了。用别的文本处理工具来弄吧 这里在看你的需求,如果你只是嫌成员太多麻烦,你可以自己弄个简单的程序来生成java文件就完了如果你确实需要动态创建JavaBean可以用CGLIB做net.sf.cglib.beans.BeanGenerator g = new net.sf.cglib.beans.BeanGenerator();g.addProperty("x", int.class);Object o = g.create(); 选中你的域,点击右键,选择source-》genrate Geters and setters Class.forName返回Class类型的,应该加个newInstance, 再加个强转 这种东西楼主可以写段代码取生成,成员变量按照一定的规律命名,然后循环生成java类就可以了 嗯,建议采用 13 楼提供的方式,cglib 的方式是采用 ASM 字节码框架直接修改字节码而来的。 使用 cglib 可以看看这个帖子 12 楼的代码:http://topic.csdn.net/u/20080610/23/a8b917e6-05bb-47bc-87c8-5828b3bee970.html当然了,你也可以直接采用 ASM 来实现,但是非常麻烦,参考下面这个帖子 33 楼的代码:http://topic.csdn.net/u/20080719/07/8a0686d5-e103-428c-bd12-7392abfd8ccb.html 我想我明白楼主的意思,楼主是想很方便创建一系列变量,比如name1,name2,name3....name#。然后想通过某种方法,让前面的一段名字相同,通过循环的方式在一段相同的名字的基础上加上写东西(如数字)来拼出n个变量。比如用name做基础,然后for(int i =1;i<100;i++){String name+i = "";}这样来创建好多个变量,据我知道的有些脚本语言可以这样做,java还没有试过,好像也没怎么看到别人用。 Test.class正确而t.class就找不到符号,为什么不能用对象? 求助 这个程序怎么运行不了 JTable中问题 ProcessBuilder创建进程,不能多线程问题 ItemListener的问题,高手帮忙看下 关于socket程序运行时候出这个错,怎么解决 关于hashcode()的问题 遇到问题 缺少返回语句 JSplitPane中的,,那个oneTouch如何能位于正中??......来顶就给分!!! IREPORT如何实现动态列? --通用报表 在Java中如何更改数据表的列名??
以前用过这个,你先参考一下。
如果整型的话我想也可以是这样:
Integer ii=class.forname("java.long.Integer");
还有java能用字符拼变量名吗。怎么拼。谢谢
没懂=========
我有一个java程序,有好多好多的成员变量(几百个),一个一个的创建得累死,有没有什么好的方法。
你的设计有问题,如果没问题的话,你考虑用 Map 吧,通过Map 来存取数据, key 就是你的 变量名,当然是字符串的形式
用别的文本处理工具来弄吧
如果你确实需要动态创建JavaBean可以用CGLIB做net.sf.cglib.beans.BeanGenerator g = new net.sf.cglib.beans.BeanGenerator();
g.addProperty("x", int.class);
Object o = g.create();
http://topic.csdn.net/u/20080610/23/a8b917e6-05bb-47bc-87c8-5828b3bee970.html当然了,你也可以直接采用 ASM 来实现,但是非常麻烦,参考下面这个帖子 33 楼的代码:
http://topic.csdn.net/u/20080719/07/8a0686d5-e103-428c-bd12-7392abfd8ccb.html