大神来解答,JAVA中,我想用一个类存放多个数据,为什么报空指针错误?(代码如下)

publicclasssimpleTests{classic{inta;intb;}publicstaticvoidmain(String[]args){ic[]ica=... public class simpleTests {
class ic {
int a;
int b;
}
public static void main(String[] args) {
ic [] ica = new ic[10];
for(ic t : ica) {
t.a = 1; //这里报空指针错误
t.b = 2;
}
for(ic t : ica) {
System.out.println(t.a);
System.out.println(t.b);
}
}
}
展开
 我来答
百度网友e977b36
2019-06-20
知道答主
回答量:73
采纳率:33%
帮助的人:6.2万
展开全部
这里报空指针问题,是由于在循环遍历的最后一个数是,循环进去了,但是t的值为Null,t.a必然报空指针错,开启debug模式调下就看的清晰了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鞠婧祎老婆柠祎
2019-06-20 · TA获得超过726个赞
知道小有建树答主
回答量:2416
采纳率:67%
帮助的人:403万
展开全部
你这个代码问题不少,参考我的修改
public class SimpleTests {
static class ic{
int a;
int b;

public int getA() {
return a;
}

public void setA(int a) {
this.a = a;
}

public int getB() {
return b;
}

public void setB(int b) {
this.b = b;
}
}
public static void main(String[] args) {
ic [] ica = new ic[10];
ic obj;
for(int i=0;i<ica.length;++i) {
obj = new ic();
obj.setA(1);
obj.setB(2);
ica[i]=obj;
}
for(ic t : ica) {
System.out.println(t.a);
System.out.println(t.b);
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
smile晴灬空
2019-06-20
知道答主
回答量:34
采纳率:50%
帮助的人:6.8万
展开全部
为什么你会想到用foreach来遍历类 foreach实际上是一个增强for循环 底层原理与for循环是一样的 只不过把一些操作交给jvm去执行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狂风卷地百草折
2019-06-20 · 超过12用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:17.2万
展开全部

因为你只是创建了一个长度为10的数组,但是数据里面的值都是为空的。所以无法循环设置a和b的值。

追问
是的是的,可是明明前面new了呀,为什么数组里不是一个个m类的对象呢,该怎么给这个数组每一个元素赋值为m类的对象呢?  不胜感谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式