s*******y 发帖数: 558 | 1 想要写个程序提供下面的功能。
1. 允许其他用户不用修改已有的code就可以添加自己的算法class, 然后在main gui
里面可以直接直接显示出来。譬如显示在JComboBox里面。 这个通过一个外部的
config 文件可以实现。
我的问题是第二步.
2. 当用户在main gui里面选择新添加的算法, 如何不用重新修改编译已有的code就能
动态生成那个新算法的class object? 这里假设通过外部的config 文件我们可以得到
那个class的名字(in String type)。
譬如, 新class的名字是 “NewTask”, 正常情况下需要下面的code
NewTask obj = new NewTask(parameter_type a);
但是现在只有一个String "NewTask", 该怎么办?
谢谢了 |
c*******a 发帖数: 29 | 2 beans or springframework?
gui
【在 s*******y 的大作中提到】 : 想要写个程序提供下面的功能。 : 1. 允许其他用户不用修改已有的code就可以添加自己的算法class, 然后在main gui : 里面可以直接直接显示出来。譬如显示在JComboBox里面。 这个通过一个外部的 : config 文件可以实现。 : 我的问题是第二步. : 2. 当用户在main gui里面选择新添加的算法, 如何不用重新修改编译已有的code就能 : 动态生成那个新算法的class object? 这里假设通过外部的config 文件我们可以得到 : 那个class的名字(in String type)。 : 譬如, 新class的名字是 “NewTask”, 正常情况下需要下面的code : NewTask obj = new NewTask(parameter_type a);
|
z***h 发帖数: 405 | 3 typical Spring
【在 c*******a 的大作中提到】 : beans or springframework? : : gui
|
c*****t 发帖数: 1879 | 4 Learn the reflection API for the #2. From the class name string,
you can get the Class object, from which you can obtain the Constructor
objects. Then you can invoke one of the constructors to generate
the object.
gui
【在 s*******y 的大作中提到】 : 想要写个程序提供下面的功能。 : 1. 允许其他用户不用修改已有的code就可以添加自己的算法class, 然后在main gui : 里面可以直接直接显示出来。譬如显示在JComboBox里面。 这个通过一个外部的 : config 文件可以实现。 : 我的问题是第二步. : 2. 当用户在main gui里面选择新添加的算法, 如何不用重新修改编译已有的code就能 : 动态生成那个新算法的class object? 这里假设通过外部的config 文件我们可以得到 : 那个class的名字(in String type)。 : 譬如, 新class的名字是 “NewTask”, 正常情况下需要下面的code : NewTask obj = new NewTask(parameter_type a);
|
s*******y 发帖数: 558 | |
r*****l 发帖数: 2859 | 6 Class.forName(), Class.newInstance()等有效reflection methods。
gui
【在 s*******y 的大作中提到】 : 想要写个程序提供下面的功能。 : 1. 允许其他用户不用修改已有的code就可以添加自己的算法class, 然后在main gui : 里面可以直接直接显示出来。譬如显示在JComboBox里面。 这个通过一个外部的 : config 文件可以实现。 : 我的问题是第二步. : 2. 当用户在main gui里面选择新添加的算法, 如何不用重新修改编译已有的code就能 : 动态生成那个新算法的class object? 这里假设通过外部的config 文件我们可以得到 : 那个class的名字(in String type)。 : 譬如, 新class的名字是 “NewTask”, 正常情况下需要下面的code : NewTask obj = new NewTask(parameter_type a);
|
R******k 发帖数: 3942 | 7 public class DAOFactory{
String className = Properites.get("className");
Object obj = class.forName(className).newInstance();
} |