如何根据数据库中的类名执行代码

时间:2013-02-20 19:49:40

标签: java

我的应用程序需要根据一些业务逻辑向客户发送一些通知(将来)。 我需要将所有这些通知与数据库中的一些baisc信息一起保存(将它们称为SMSJob或EmailJob等工作)。其中一列将具有每个特定作业的类名。 现在将有另一个逻辑,它将查询数据库并获取所有这些作业并逐个开始执行它们。正如Mikhail和Arsen所建议的,我可以使用反射来创建基于类名称的所有类的实例。

是否有类似的东西我可以参考代码。在坚果壳中我只是试图实现石英提供的类似功能。我有非常严格的时间表,所以对文章或代码的任何引用都会对我有所帮助。

提前感谢。

2 个答案:

答案 0 :(得分:3)

你需要使用反射。如果您的类实现了Runnable接口,请执行以下操作:

Class <?> clazz = Class.forName (classNameFromDB);
Runnable runnable = (Runnable)clazz.newInstance ();
runnable.run ();

答案 1 :(得分:0)

您的类需要使用例如execute()方法覆盖它们的某些基接口。从数据库中检索它们之后您可以使用反射来执行它们。