我知道我已经问过NullPointerException了,但是我发现代码中还有另一个错误,找不到并替代解决它。提前致谢。以下是代码:
03-07 14:11:13.510: E/AndroidRuntime(897): Process: br.com.agendadecontatos, PID: 897
03-07 14:11:13.510: E/AndroidRuntime(897): java.lang.NullPointerException
03-07 14:11:13.510: E/AndroidRuntime(897): at br.com.agendadecontatos.ProvedorDeContatos.toString(ProvedorDeContatos.java:50)
让我说得更清楚,因为有些人说我的问题是无用的或类似的。我是Java编程的新手,真的不知道如何解决这个问题。我希望StackOverflow中有人能理解我的情况。我只是在寻求帮助。说什么在downvoting之前丢失了。感谢。
@Override
public String toString()
{
// TODO Auto-generated method stub
return Nome + "-" + Telefones.get(0); // <- the error is here
//the error is here
}
以下是整个代码:
package br.com.agendadecontatos;
import java.util.List;
public class ProvedorDeContatos
{
private String ID;
private String Nome;
private String Sobrenome;
private List<ProvedorDeContatos> Telefones;
public String getID()
{
return ID;
}
public void setID(String string)
{
ID = string;
}
public String getNome()
{
return Nome;
}
public void setNome(String nome)
{
Nome = nome;
}
public List<ProvedorDeContatos> getTelefones()
{
return Telefones;
}
public void setTelefones(List<ProvedorDeContatos> telefones)
{
Telefones = telefones;
}
public String getSobrenome()
{
return Sobrenome;
}
public void setSobrenome(String sobrenome)
{
Sobrenome = sobrenome;
}
//Metodo sobreescrito para que não aparece o nome do componente na listView
@Override
public String toString()
{
// TODO Auto-generated method stub
return Nome + "-" + Telefones.get(0);
}
//função criada após o erro com o setTelefones na classe Telefone
public void setTelefones(String telefones)
{
//TODO Auto-generated method stub
}
}
答案 0 :(得分:0)
听起来Telefones
变量在您调用get
时为空。这就是调用get
的尝试失败并抛出异常的原因。
NullPointerException
通常意味着某些东西试图调用方法或访问变量为null的字段。一旦找到正在发生的行,请仔细查看该行上使用的变量。在这种情况下,有两个:Nome
和Telefones
。
Nome
没关系,因为它只是与+
的另一个字符串连接,并且这种字符串连接不会抛出NullPointerException
。 (t只是将单词“null”放入字符串中。)所以即使Nome
为null,也不会导致异常。
离开Telefones.get(0)
电话。尝试在空对象上调用方法总是会导致NullPointerException
,并且该行上没有任何其他内容可能导致一个,所以它必须是这样。