7

私はAtomフィードエントリをループしようとしていて、タイトル属性を取得しようとしています。たとえば、この記事を見つけました。このコードを抜粋してみました。

for (final Iterator iter = feeds.getEntries.iterator();
     iter.hasNext(); )
{
    element = (Element)iter.next();
    key = element.getAttributeValue("href");
    if ((key != null) &&
        (key.length() > 0))
    {
        marks.put(key, key);
    }

   //Don't have to put anything into map just syso title would be enough
}

しかし、私は例外を言っています:

java.lang.ClassCastException:com.sun.syndication.feed.synd.SyndEntryImplをcom.emir.altantbh.FeedReader.main(FeedReader.java:47)のorg.jdom.Elementにキャストできません

私は何を間違えましたか?誰かが私をより良いチュートリアルに向けたり、どこで間違いを犯したのかを教えてもらえますか?エントリをループしてタイトルタグの値を抽出する必要があります。ありがとうございました

4

1 に答える 1

9

SyndFeed.getEntries()Listのを返しますSyndEntryImplSyndEntryImplからにキャストすることはできませんorg.jdom.Element

SyndEntry次のようにすべてを繰り返すことができます。

for (final Iterator iter = feed.getEntries().iterator();
     iter.hasNext(); )
{
    final SyndEntry entry = (SyndEntry) iter.next();
    String title = entry.getTitle();
    String uri = entry.getUri();
    //...
}

APIリンク


Java 5.0以降を使用している場合は、これを試すこともできます。

for (SyndEntry entry : (List<SyndEntry>) feed.getEntries()) {
    String title = entry.getTitle();
    String uri = entry.getUri();
    //...
}

ここにはチェックされていないキャストがありますが、の仕様に基づいて安全であるはずですgetEntries()

も参照してください

于 2010-05-13T09:57:48.480 に答える