我需要在运行时定义一个对象,如下所示。
Filter rowFilter = new RowFilter(CompareFilter.CompareOp.EQUAL,
new RegexStringComparator(".*-.5"));
我正在阅读一个字符串,其中包含如下代码
String _filterString = "RowFilter(CompareFilter.CompareOp.EQUAL,
new RegexStringComparator(\".*-.5\"))";
现在我需要使用上面的String定义一个过滤器对象。
我知道,我们可以通过使用Reflections实现这类问题。但我正在寻找替代品。有没有简单的方法来解决这样的问题?
答案 0 :(得分:2)
Java Scripting API允许嵌入JavaScript等杂项语言,并绑定Java变量和方法。在您的情况下,可以使用语言BeanShell(Java子集)。
答案 1 :(得分:1)
Java Compiler可以在运行时用于编译,但它需要一个完整的源代码(编译单元)。我认为不能编译单个表达式。也许,你可以从这里开始从运行时编译的类中获取对象。