Java getter和setter方法的问题
您好,我正在使用Java getter和setter方法的问题,java,android,setter,getter,serializable,Java,Android,Setter,Getter,Serializable,您好,我正在使用SAX开发googlenewsreader应用程序,这里我使用getters和setters方法获取数据但我有一个问题,我可以将值添加到setters方法中,但无法进入getters方法,我不知道哪里出错了,请告诉我哪里出错了 public class Item implements Serializable { private String title; private String description; private String link; private Stri
SAX
开发googlenewsreader
应用程序,这里我使用getters
和setter
s方法获取数据但我有一个问题,我可以将值添加到
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()
为null
编辑:
Item项=新项();
对于(int i=0;i
我强烈怀疑您调用了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
如果使用两个不同的对象来设置和获取,可能会发生这种情况。检查是否在同一对象上调用
setter
和getter
编辑
用于设置标题的对象,即item.setTitle(content.toString())
与在for
循环之前创建的项
对象不同。在for
循环之前使用item item=new item()
重新创建/重新初始化item
对象。创建一个全局项
对象并只创建一次。试试这个
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();
}
}
请尝试检查您正在设置和获取的实例。以及如何调用getter和setter,请将代码发布到构造函数中,如果setters&getter或任何方法是可重写的,则不应调用它们。您是否可以将赋值发布到set method我已编辑过请检查它。根据此,您将得到空指针异常………@iozee当@jon已发布其答案时,我碰巧编写了答案。它确实发生了。我想这算不上什么大罪。我对getTitle()和SetTitle()都有相同的对象。请检查我编辑的代码。这一行
Item Item=new Item()
就在for
循环的上方如何?我对getTitle()和SetTitle()都有相同的对象。请检查我编辑的代码。@RahulPatel:不,你没有-在你使用getTitle()
的代码中,你已经事先得到了Item Item=new Item()
,就像我的回答一样。检查循环条件(int i=0;iItem.getTitle())
在刚创建的项目上,因此没有标题。换句话说,不是您以前在上调用的项目。
Item item1 = new Item();
item1.setTitle("foo");
// Some other code
Item item2 = new Item();
String title = item2.getTitle(); // This will return null
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();
}
}