在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(),我会得到相同的异常。