java:尝试添加到对象列表并获取nullPointerException
如果这似乎是一个微不足道的问题,我真的很抱歉,但我没有任何运气 我创建了一个自定义对象,类似于java:尝试添加到对象列表并获取nullPointerException,java,android,list,arraylist,nullpointerexception,Java,Android,List,Arraylist,Nullpointerexception,如果这似乎是一个微不足道的问题,我真的很抱歉,但我没有任何运气 我创建了一个自定义对象,类似于 public class Foo { long id = 0; int counter = 0; String label = null; public void setId(long in){ this.id = in; } public void setCounter(int
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);
}
}
公共类活动thingy扩展了main活动{
列表栏=新的ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
函数();
}
私有空函数(){
Foo kit=新的Foo();
套件.setId(1);
设置计数器(1);
套件。设置标签(“”);
添加(套件);
}
}
然后我尝试在创建列表的同一类的另一个方法中向它添加一个对象
正在将对象列表项添加到初始化列表的类中的方法中。该列表是类的全局列表,因此可以重复调用该方法,根据用户输入向列表中添加多个项
但每次我都会得到一个空指针异常。显然,我希望它将该项添加到列表中,而不是抛出该异常
我还能忽略什么呢
顺便说一句,我正在使用Android Studio。以下是为子孙后代所发生的事情 我得到了如上所述的对象,并设置了如上所述的对象值。问题是,我还通过intent extras为该对象传递了一个值 这就是上面的代码在我身上爆炸的地方 当我从另一个活动传递该对象时;它将新对象中声明的“label”值重置为null。对象中默认值为null的字符串是我的问题 我的解决办法是改变
String label = null;
到
我不再得到空指针异常
如果有人还有任何问题,我会更详细地编辑这个答案。如果需要更多详细信息,请发表意见。根据您在问题中提供的代码,您正在设置id中的
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;
}
}
您可能有一个错误的创建顺序,即您试图在创建“bar”之前将“Foo”添加到“bar”。还有一个提示。如果你想得到帮助,那么最好发布更多的代码(最好是整个类),因为像你那样发布代码是模糊的,并且没有提供足够的信息说明问题可能发生的地方。所以我实际上在类构造函数中初始化列表,然后在该类中的方法中调用bar.add(kit)。为什么不起作用呢?必须实现describeContents和writeToParcel,这些都是Parcelable的方法。因为我运行相同的代码并且没有出错。@Chitrang,我实际上是全班的。为了简单起见,我刚刚抓住了课程的开头,重新命名了一些东西。如果我没有实现describeContents和writeToParcel,它根本不会运行。它一直运行,直到我将该项添加到列表中。谢谢你@Velogiraptor根据您的个人资料中没有编辑徽章这一事实判断,我假设您可能不知道如何编辑您的问题以提供更多内容。如果是这种情况,那么只需使用它下面的[]按钮。对不起,这只是示例代码中的复制粘贴错误。在真实的课堂上,这是正确的。我已经编辑了这个例子,谢谢你的关注!
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;
}
}