您好我正在处理使用google NewsReader
的{{1}}应用程序,我在这里使用SAX
和getters
方法来获取数据。
但我有问题,我可以在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());
}
}
答案 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个不同的对象set
和get
,则可能会发生这种情况。检查您是否在同一对象上调用setter
和getter
。
修改强>
用于设置标题的对象,即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();
}
}
请尝试检查您正在设置和获取的实例。