根据这个简单的例子,我为 parboiled 框架创建了一个解析器类:
package my.package;
import org.parboiled.BaseParser;
import org.parboiled.annotations.BuildParseTree;
@BuildParseTree
public class QueryParser extends BaseParser<Object> {
//some rules
}
如果我尝试创建解析器,如示例所示
QueryParser parser = Parboiled.createParser(QueryParser.class);
我在那一行遇到了一个例外:
java.lang.ClassCastException: my.package.QueryParser$$parboiled cannot be cast to org.parboiled.BaseParser
at org.parboiled.Parboiled.createParser(Parboiled.java:56)
...
我真的没有做示例中没有做的任何特别的事情。唯一的区别是解析器和调用它的类在不同的项目中,但我无法想象为什么这很重要。项目(即 Eclipse 插件项目)之间的依赖关系应该没问题。
谁能告诉我我做错了什么或错误可能在哪里?