简体   繁体   English

java lang类强制转换异常

[英]java lang Class Cast Exception

I have written a code which can reduce the grammatical boundaries for a text, but when I run the program this exception comes up 我写了一个代码,可以减少文本的语法边界,但是当我运行程序时会出现此异常

java.lang.ClassCastException

here is the class that i run, 这是我参加的课程

public class paerser {
public static void main (String [] arg){
    LexicalizedParser lp = new LexicalizedParser("grammar/englishPCFG.ser.gz");
        lp.setOptionFlags("-maxLength", "500", "-retainTmpSubcategories");
        TreebankLanguagePack tlp = new PennTreebankLanguagePack();
       GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
       String text = "John, who was the CEO of a company, played golf.";
       edu.stanford.nlp.trees.Tree parse = lp.apply(Arrays.asList(text));
       GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
       List<TypedDependency> tdl = gs.typedDependenciesCCprocessed();
       System.out.println(tdl);

}
}

Updated, 更新,

here is the full stack trace ... 这是完整的堆栈跟踪...

Loading parser from serialized file grammar/englishPCFG.ser.gz ... done [1.5 sec].
Following exception caught during parsing:
java.lang.ClassCastException: java.lang.String cannot be cast to edu.stanford.nlp.ling.HasWord
    at edu.stanford.nlp.parser.lexparser.ExhaustivePCFGParser.parse(ExhaustivePCFGParser.java:346)
    at edu.stanford.nlp.parser.lexparser.LexicalizedParser.parse(LexicalizedParser.java:386)
    at edu.stanford.nlp.parser.lexparser.LexicalizedParser.apply(LexicalizedParser.java:304)
    at paerser.main(paerser.java:19)
Recovering using fall through strategy: will construct an (X ...) tree.
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be  cast to edu.stanford.nlp.ling.HasWord
    at edu.stanford.nlp.parser.lexparser.LexicalizedParser.apply(LexicalizedParser.java:317)
    at paerser.main(paerser.java:19)

Stacktrace shows that ExhaustivePCFGParser's parse method is being used. Stacktrace显示正在使用ExhaustivePCFGParser的parse方法 It expects a List of HasWord objects. 它需要一个HasWord对象列表。 You are passing a list of String. 您正在传递一个字符串列表。 Hence, the exception. 因此,例外。

public boolean parse(List<? extends HasWord> sentence) { // ExhaustivePCFGParser

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM