任何代码的占位符

时间:2013-05-28 05:17:32

标签: java reflection

我需要在运行时定义一个对象,如下所示。

 Filter rowFilter = new RowFilter(CompareFilter.CompareOp.EQUAL,
 new RegexStringComparator(".*-.5"));

我正在阅读一个字符串,其中包含如下代码

String _filterString = "RowFilter(CompareFilter.CompareOp.EQUAL,
     new RegexStringComparator(\".*-.5\"))";

现在我需要使用上面的String定义一个过滤器对象。

我知道,我们可以通过使用Reflections实现这类问题。但我正在寻找替代品。有没有简单的方法来解决这样的问题?

2 个答案:

答案 0 :(得分:2)

Java Scripting API允许嵌入JavaScript等杂项语言,并绑定Java变量和方法。在您的情况下,可以使用语言BeanShell(Java子集)。

答案 1 :(得分:1)

Java Compiler可以在运行时用于编译,但它需要一个完整的源代码(编译单元)。我认为不能编译单个表达式。也许,你可以从这里开始从运行时编译的类中获取对象。