3

根据这个简单的例子,我为 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 插件项目)之间的依赖关系应该没问题。

谁能告诉我我做错了什么或错误可能在哪里?

4

1 回答 1

1

它实际上似乎与运行配置有关。我将所有煮熟的相关代码移到一个项目中,它可以工作。我想我会保持这种方式,因为无论如何它是更好的封装。

于 2013-02-19T17:17:04.457 回答