java对象作为参数传入,报NullPointerException 5
我现在知道java实际上是不是引用传递,比如我现在有个操作a=newsomeType();//其中初始化a.member=null;a.member=b;//该操作是成功...
我现在知道java实际上是不是引用传递,比如我现在有个操作
a = new someType();//其中初始化a.member=null;
a.member = b;//该操作是成功的,并且a.member和b指向同个空间
1)但现在我希望在函数中改变它,然而就报空指针的错误
void func(someType a) {
a.member = b;
}
a = new someType();
func(a);//报空指针错误耶
2)后来我在a中添加了setMember方法,在func中使用,仍然报一样的错误
void setMember(bType b) {
menber = b;
}
void func(someType a) {
a.setMember(b);
}
怎么解决?十分感谢 展开
a = new someType();//其中初始化a.member=null;
a.member = b;//该操作是成功的,并且a.member和b指向同个空间
1)但现在我希望在函数中改变它,然而就报空指针的错误
void func(someType a) {
a.member = b;
}
a = new someType();
func(a);//报空指针错误耶
2)后来我在a中添加了setMember方法,在func中使用,仍然报一样的错误
void setMember(bType b) {
menber = b;
}
void func(someType a) {
a.setMember(b);
}
怎么解决?十分感谢 展开
2个回答
展开全部
说实话没看懂你的意思,你的func方法是干什么的,someType类具体是什么样的都没说明,还有就是报错的详细信息你也没放出来,让人怎么看呢?
看完了你新加的图片后,还是看不明白,你很多东西都是没写出来啊,比如那个allTypes是什么啊,你写的哪里error 报空指针我想应该是TypeNames.indesOf(typeName) 返回 -1了,导致的,没有全部的代码没法确定,你从这看一下数据把,是不是typeName 跟TypeNames没有符合的
看完了你新加的图片后,还是看不明白,你很多东西都是没写出来啊,比如那个allTypes是什么啊,你写的哪里error 报空指针我想应该是TypeNames.indesOf(typeName) 返回 -1了,导致的,没有全部的代码没法确定,你从这看一下数据把,是不是typeName 跟TypeNames没有符合的
追问
我不可能贴完所有的图,绝对不是alltype那的,它初始化就有数据,即使是get(0)也报错,所有只能理解是compelteType的原因,因为我说过在函数外的赋值是正常的
追答
那我就不知道了,建议你可以用eclipse 或myeclipse 的debug 模式调试看看是哪里的原因
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询