如何动态创建一个以前完全不存在的新类?

iter 04-08-12

一般来说java建立对象可以用
AAA aaa = new AAA();

这个AAA对象必须是先建立好的
public class AAA{
....
}

java能否动态的创建一个以前完全不存在的新类?如动态建立一个BBB?



mep
2004-08-12 11:55

BCEL library

Azure_2003
2004-08-12 12:51

这是不可能的事,因为我们没有源码,没有源程序怎么会有对象呢,除非我们有源代码生成工具,而且还要编译源码。

SportsBaby1980
2004-08-12 14:23

Azure_2003

不太同意你的看法。

如果有代码生成规则,
那么可以按该规则生成新的class,
程序应能完成如下功能:
1.获取到生成规则,如必要的class name,super class type,member var,methods
2.按规则生成代码
3.动态编译,并把编译的.class文件或者打成的jar包 放到某一合适路径下。
4.动态类装入。
分析一下,这四不都能实现
但是,就目前的情况来看,
只能生成功能比较简单的类,
如interface
或者是标准javabean
对与复杂情况,现在还不行。
同时,我认为 动态生成不存在的类是编程的最高境界,
也就是计算机自动编写需要的程序并加载运行。
目前的技术还不能完全满足,但可满足部分简单情况。

Azure_2003
2004-08-13 12:56

对,这个规则的具体实现就是我说的源码生成工具,即时如此,我们现在只能生成一些结构简单的东西,要想它帮你实现完整的产品和业务逻辑,变得象人一样智能化的随意畅想,人工智能到了这种地步,我们人类还有存在的理由吗?算了吧,世界末日到了。

2Go 1 2 下一页