在Android中从模型类调用get()方法时获取NullPointerException
我有以下模型类:在Android中从模型类调用get()方法时获取NullPointerException,android,Android,我有以下模型类: @SuppressWarnings("serial") public class Cheltuiala implements Serializable { private int id; private Date data; private String tip; private float pret; public Cheltuiala() { } public Cheltuiala(Date data, Stri
@SuppressWarnings("serial")
public class Cheltuiala implements Serializable {
private int id;
private Date data;
private String tip;
private float pret;
public Cheltuiala() {
}
public Cheltuiala(Date data, String tip, float pret) {
this.data = data;
this.tip = tip;
this.pret = pret;
}
public int getId() {
return id;
}
public Date getData() {
return data;
}
public String getTip() {
return tip;
}
public float getPret() {
return pret;
}
public void setId(int id) {
this.id = id;
}
public void setData(Date data) {
this.data = data;
}
public void setTip(String tip) {
this.tip = tip;
}
public void setPret(float pret){
this.pret = pret;
}
@Override
public String toString() {
return "id:" + id + " data:" + data + " tip:" + tip + " pret:" + pret;
}
}
以下是DetailsActivity中扩展活动的方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details); // legatura dintre activitate si view
Intent intent = getIntent(); //continutul cu care s-a apelat
final Cheltuiala cheltuiala = (Cheltuiala) intent.getSerializableExtra("cheltuiala");
System.out.println(cheltuiala.getData());
EditText data = (EditText) findViewById(R.id.editTextData);
data.setText(cheltuiala.getData().toString());
EditText tip = (EditText) findViewById(R.id.editTextTip);
System.out.println(cheltuiala);
tip.setText(cheltuiala.getTip());
EditText pret = (EditText) findViewById(R.id.editTextPret);
pret.setText(String.valueOf(cheltuiala.getPret()));
}
当我打印'cheltuiala'时,我看到了我想要的,但是当我从'cheltuiala'类调用get()方法时,我得到了NullPointerException。有人知道原因吗?因为您使用了
toString()
方法,所以当getData
为空时,您可以获得NPE
。您可以检查getData
是否为空,如果不为空,请使用.toString()
您可以使用以下代码:
data.setText(cheltuiala.getData() == null ? "" : cheltuiala.getData().toString());
正如您所说,当我使用每个get方法时,null可能是
data
is null。检查activity\u details
中是否有editTextData
id是的,但是如果调用任何get()方法,我会得到NullPointerException。因此,您的对象为null,您检查了吗?这就是问题所在。我的对象不是空的。你得到了什么:(Cheltuiala)intent.getSerializableExtra(“Cheltuiala”);逐行评论并检查您从哪里获得NPE以及从哪里获得结果。在这里发布你的日志。我在任何我调用get()方法的地方都得到了NPE。如果我注释“System.out.println(cheltuiala.getData());”之后的所有行,我有个例外。如果我用getTip()或getPret()替换getData(),我会得到相同的异常。