【发布时间】:2011-04-16 09:48:39
【问题描述】:
我想根据我的 XML 配置文件中定义的字段在 Java 中创建一个类:
例如:如果 XML 文件包含(语法已被恶意张贴):
<property name="agent_host"></property>
<property name="subsystem"></property>
然后它会在内部创建一个类事件,例如客户端可以实例化的 Event(String agentHost, String subSystem)。注意:客户端总是知道这个类将被称为“事件”,但不知道它需要传递多少个“强制参数”。
另一方面,如果我有一个 XML 文件:
<property name="agent_host"></property>
然后它将创建客户端可用于实例化的 Event(String eventHost)。
【问题讨论】:
-
您想为静态编译生成代码(.java 文件)吗?还是要在运行时生成代码?
-
代码(事件类)应该在运行时可用
-
在这种情况下,该类的用户将如何实例化它(因为他们没有编译时引用)?你预计他们会使用反射吗?
-
这会起作用..反射。但是他们已经知道他们需要创建一个 Event 类的实例。为方便起见,类Event构造函数所需的参数个数应该等于XML文件中属性字段的个数
-
不,确切地说,他们已经知道他们需要创建一个命名“Event”类的实例,这完全不同。我倾向于同意以下@Bill 的观点,即这对您或您的消费者来说都不会是一次愉快的体验。您能否详细说明您认为动态生成此类而不是使用像地图这样的松散数据结构有什么优势?