getter和setter方法的问题

时间:2012-06-21 06:43:40

标签: java android setter getter serializable

您好我正在处理使用google NewsReader的{​​{1}}应用程序,我在这里使用SAXgetters方法来获取数据。
但我有问题,我可以在setter方法中添加值,但无法进入setters方法,我不知道什么是错误,请告诉我在哪里做错误。

getters

输出到Logcat:

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);
}

这里我得到 value of the settitle =============>Oracle CEO Ellison to Buy Most of Hawaiian Island Lanai - Bloomberg value of the Gettitle ===============> null 的值为null。

编辑:

item.getTitle().length()

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());
        }
    }

3 个答案:

答案 0 :(得分:1)

我强烈怀疑您在getTitle()的其他实例上调用了Item而不是您调用setTitle()的实例:

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

// Some other code

Item item2 = new Item();
String title = item2.getTitle(); // This will return null

答案 1 :(得分:0)

如果您使用2个不同的对象setget,则可能会发生这种情况。检查您是否在同一对象上调用settergetter

修改

用于设置标题的对象,即item.setTitle(content.toString());与在item循环之前创建的for对象不同。您正在item循环之前使用Item item = new Item()重新创建/重新初始化for对象。创建一个全局item对象并仅创建一次。

答案 2 :(得分: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();
}
}

请尝试检查您正在设置和获取的实例。