我的应用程序需要根据一些业务逻辑向客户发送一些通知(将来)。 我需要将所有这些通知与数据库中的一些baisc信息一起保存(将它们称为SMSJob或EmailJob等工作)。其中一列将具有每个特定作业的类名。 现在将有另一个逻辑,它将查询数据库并获取所有这些作业并逐个开始执行它们。正如Mikhail和Arsen所建议的,我可以使用反射来创建基于类名称的所有类的实例。
是否有类似的东西我可以参考代码。在坚果壳中我只是试图实现石英提供的类似功能。我有非常严格的时间表,所以对文章或代码的任何引用都会对我有所帮助。
提前感谢。
答案 0 :(得分:3)
你需要使用反射。如果您的类实现了Runnable
接口,请执行以下操作:
Class <?> clazz = Class.forName (classNameFromDB);
Runnable runnable = (Runnable)clazz.newInstance ();
runnable.run ();
答案 1 :(得分:0)
您的类需要使用例如execute()
方法覆盖它们的某些基接口。从数据库中检索它们之后您可以使用反射来执行它们。