Java怎样动态生成对象 Object ob=Class.forName(className).NewInstance();ob就是你要生成的对象啦 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是相关类,首先可以提取一个接口,例如:CommanOperation;然后,用CommanOperation comm =(CommanOperation)Class.forName(className).newInstance();生成相应的实例,以后可以根据接口作相应的操作。如果是一组无关的类,就没有必要动态生成了。 搂住的意思是不是生成类文件,然后把.java文件保存在磁盘上,再调用?这个可真可以试试,现根据要求生成类文件字符串,再保存到磁盘上,然后再进行编译,再使用楼上的方法newInstance,hoho,不会是真的吧。 看看简单工厂模式,我想最适合你啦。抽象产品 A 有被实现的三个具体产品B C D然后由一个具本工厂E的一个静态方法factory(String s):A根据参数s来创建B C D 的实例,那几个实例就会有你的需要的不同的方法了。 java.lang.reflect.Methodjava.lang.reflect.Constructorjava.lang.reflect.Member 反射好像不是解决这个问题的钥匙吧。reflect 只能得到既定的类的实例和方法。并不能当动态创建的。不是吗? 难点在哪呢不就是用户根据规则订制java文件么 规则是你定的 你怎么生成都行了然后调用sun.tools.javac.*中的类编译 然后用ClassLoader导入然后Object ob=Class.forName(className).NewInstance();然后java.lang.reflect.Methodjava.lang.reflect.Constructorjava.lang.reflect.Member 谢谢 jokerjava 以及其他的朋友给我很多启示,和解决答案。 to kypfos:因为许多问题是根据实际情况需要而提出的,其实并非什么都是动态的,那样子也没办法使用,比方说,用户需要一些能够自定义的运算规则,由这些规则以及以前预定义的运算类(基础规则)一起能算出最终结果,那这些由用户制定的函数怎样处理?我想把他们放到一个ObjectPool中,而这些对象又不能预先定义,所以我想到了动态生成未知的类,虽然有点激进,但是觉得这样做能和以前的运算类结合的很好,使用也差不多。其他朋友觉得有什么想法? 新手疑问:为什么能把一个实现了某个接口的类的实力存放在这个接口的变量中? 可不可以用命令行参数给出源文件跟目标文件的路径 我的问题很简单~~希望大家帮忙 我写的一个矩阵类,请大家指教. 求解释该段代码含义 谁能告诉我msbase.jar mssqlserver.jar msutil.jar的下载URL啊...... 求螺旋矩阵的最佳算法 怎样为程序分配内存? 请问在那里可以下载到jbuilder的帮助文档,要‘安装 谁用过Kawa,感觉如何?值得用吗? 有菜菜问题了。 除了使用流以外,还有没有其他可靠的方法实现文件复制?
CommanOperation;然后,用
CommanOperation comm =(CommanOperation)Class.forName(className).newInstance();
生成相应的实例,以后可以根据接口作相应的操作。
如果是一组无关的类,就没有必要动态生成了。
这个可真可以试试,现根据要求生成类文件字符串,再保存到磁盘上,然后再进行编译,再使用楼上的方法newInstance,hoho,不会是真的吧。
抽象产品 A 有被实现的三个具体产品B C D然后由一个具本工厂E的一个静态方法factory(String s):A
根据参数s来创建B C D 的实例,那几个实例就会有你的需要的不同的方法了。
java.lang.reflect.Constructor
java.lang.reflect.Member
然后调用sun.tools.javac.*中的类编译 然后用ClassLoader导入然后
Object ob=Class.forName(className).NewInstance();然后
java.lang.reflect.Method
java.lang.reflect.Constructor
java.lang.reflect.Member
因为许多问题是根据实际情况需要而提出的,其实并非什么都是动态的,那样子也没办法使用,
比方说,用户需要一些能够自定义的运算规则,由这些规则以及以前预定义的运算类(基础规则)一起能算出最终结果,那这些由用户制定的函数怎样处理?
我想把他们放到一个ObjectPool中,而这些对象又不能预先定义,所以我想到了动态生成未知的类,虽然有点激进,但是觉得这样做能和以前的运算类结合的很好,使用也差不多。其他朋友觉得有什么想法?