如果这看起来像一个微不足道的问题,我真的很抱歉,但我没有运气。
我创建了一个类似于
的自定义对象 public class Foo {
long id = 0;
int counter = 0;
String label = null;
public void setId(long in){
this.id = in;
}
public void setCounter(int in){
this.counter = in;
}
public void setLabel(String in){
this.label = in;
}
}
然后我在另一个类
中创建一个列表 public class ActivityThingy extends MainActivity {
List<Foo> bar = new ArrayList<Foo>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
function();
}
private void function(){
Foo kit = new Foo();
kit.setId(1);
kit.setCounter(1);
kit.setLabel("");
bar.add(kit);
}
}
然后我尝试在创建列表的同一个类的另一个方法中添加一个对象。
正在列表初始化的类中的方法中添加对象列表项。该列表旨在对该类是全局的,以便可以重复调用该方法以基于以下方法将多个项添加到列表中用户输入。
每次都会出现空指针异常。显然,我希望它将该项添加到列表中而不是抛出该异常。
我还能看到什么?
我正在使用Android Studio BTW。
答案 0 :(得分:0)
这是后人发生的事情。
我有如上所述的对象,并按照描述设置对象值。问题是,我还通过intent extras传递了该对象的值。
上面的代码爆炸了我。
当我从另一个活动中传递该对象时;它重置&#34;标签&#34;的值在新对象中声明为null。默认值为null的对象中的字符串是我的问题。
我的解决方案是改变
String label = null;
要
String label = new String();
我不再获得空指针异常。
如果有人有任何疑问,我会更详细地编辑这个答案。如果需要更多细节,请发表评论。
答案 1 :(得分:0)
根据您在问题中提供的代码,您正在设置id, counter and label in id
,当您致电setCounter(int in)
时,请查看您的代码this.id = in;
this.counter = in;
它应该是Foo
将您的public class Foo {
long id = 0;
int counter = 0;
String label = null;
public void setId(long in){
this.id = in;
}
public void setCounter(int in){
this.counter = in;
}
public void setLabel(String in){
this.label = in;
}
}
课程替换为以下课程:
{{1}}