0

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

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

我正在阅读一个具有如下代码的字符串

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

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

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

4

2 回答 2

2

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

于 2013-05-28T07:30:29.360 回答
1

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

于 2013-05-28T07:16:21.003 回答