0

List を返す JerichoHTML パーサー (getAllElements メソッド) を使用して、HTML データを解析しています。ただし、データを String[] に格納する必要があります。ただし、どのように行うか ( (String) ((Object) theList) のようなネストされたキャストでも)、常に失敗します....これを解決する方法はありますか? ジェリコのドキュメントでこれに関するヘルプが見つかりませんでした...

    public static String[] htmlParser(String htmlText){
    Source source = new Source(htmlText);
    List<Element> filteredList = source.getAllElements("p");
    String[] filteredArray = new String[filteredList.size()];
    for(int i = 0; i<filteredList.size();i++){
        filteredArray[i] =(String) ((Object) filteredList.get(i));
        }
    return filteredArray;
}

エラーは次のとおりです。

Exception in thread "main" java.lang.ClassCastException: net.htmlparser.jericho.Element cannot be cast to java.lang.String
at InternalLinking.InputKeywordsLinksAlternative.htmlParser(InputKeywordsLinksAlternative.java:156)
at InternalLinking.InputKeywordsLinksAlternative.inputLinksCountLess150(InputKeywordsLinksAlternative.java:70)
at InternalLinking.InputKeywordsLinksAlternative.applyWordCountFilters(InputKeywordsLinksAlternative.java:61)
at InternalLinking.InputKeywordsLinksAlternative.main(InputKeywordsLinksAlternative.java:21)
4

1 に答える 1

0

Java では、キャストによってオブジェクトの型が変更されることはありませんが、その型をより正確に知っていることをコンパイラに通知します。ここではそうではありません。あなたが望むのは変換です。Java で変換する一般的な方法はありませんが、オブジェクトの toString() メソッドを介して、または Sring.valueOf() を介して null 保存方法で、文字列への変換を行うことができます。

for (int i = 0; i < filteredList.size(); i++) {
    filteredArray[i] = String.valueOf(filteredList.get(i));
}
于 2015-03-20T16:48:28.737 に答える