0

google NewsReaderこんにちは、私はを使用してアプリケーションに取り組んでいますSAX。ここでは、データを取得するためにgettersおよびsetters メソッドを使用しています。
しかし、メソッドに値を追加することはできたが、メソッドsettersに入ることができなかったという問題がgettersあります.何が間違いなのかわかりません.どこで間違いをしているのか教えてください.

public class Item implements Serializable {

private String title;
private String description;
private String link;
private String date;

public Item() {
    setTitle(null);
    setDescription(null);
    setLink(null);
    setDate(null);
}

public String getTitle() {
    System.out.println(" value of the Gettitle ===============> "+ title);
    return title;
}

public void setTitle(String title) {
    this.title = title;
    System.out.println("value of the settitle =============>"+this.title);
}

Logcat への出力:

 value of the settitle =============>Oracle CEO Ellison to Buy Most of Hawaiian Island Lanai - Bloomberg

 value of the Gettitle ===============> null

item.getTitle().length()ここで、 is nullの値を取得しました。

編集:

public void endElement(String uri, String localName, String qName)
        throws SAXException {
    // TODO Auto-generated method stub
    //super.endElement(uri, localName, qName);

    if(localName.equalsIgnoreCase("title")) {

        if(inItem) {
            //System.out.println("value of the content=========>"+content.toString());
            item.setTitle(content.toString());
        } else {
            channel.setTitle(content.toString());
        }
    }

 Item item  = new Item();



        for (int i = 0; i < item.getTitle().length(); i++) {

            HashMap<String, String> map = new HashMap<String, String>();

            map.put("title", item.getTitle().valueOf(i));
            map.put("pubdate", item.getDate().valueOf(i));
            map.put("desc", item.getDescription().valueOf(i));

             items.add(map);

        }
4

3 に答える 3

1

あなたが呼び出したものとは異なるインスタンスを呼び出したのではないかと強く疑っていgetTitle()ます:ItemsetTitle()

Item item1 = new Item();
item1.setTitle("foo");

// Some other code

Item item2 = new Item();
String title = item2.getTitle(); // This will return null
于 2012-06-21T06:45:57.800 に答える
0

これを試して、

public class Item implements Serializable {

private String title;
private String description;
private String link;
private String date;

public Item() {
    setTitle(null);
    setDescription(null);
    setLink(null);
    setDate(null);
}

public String getTitle() {
    System.out.println(" value of the Gettitle ===============> "+ title);
    return title;
}

public void setTitle(String title) {
    this.title = title;
    System.out.println("value of the settitle =============>"+this.title);
}

public static void main(String[] args) {

 Item i = new Item();
 i.setTitle("War-Craft");

  i.getTitle();
}
}

設定および取得しているインスタンスを確認してみてください。

于 2012-06-21T06:52:19.577 に答える
0

これは、 と に 2 つの異なるオブジェクトを使用している場合に発生することがsetありgetます。同じオブジェクトでsetterandを呼び出しているかどうかを確認してください。getter

編集

タイトルを設定するために使用されるオブジェクト、つまりループの直前に作成さitem.setTitle(content.toString());れたオブジェクトと同じではありません。ループの前に使用して、オブジェクトを再作成/再初期化しています。グローバルオブジェクトを作成し、一度だけ作成します。itemforitemItem item = new Item()foritem

于 2012-06-21T06:47:37.567 に答える