求指导这个异常怎么解决

qq_40076555 2017-09-02 05:35:45
package myFirst;

public class TestBox {
Integer i;
int j;
public static void main(String[] args) {
TestBox t = new TestBox();
t.go();
}
public void go() {
j = i;
System.out.println(j);
System.out.println(i);
}
}

抛出异常如下:
Exception in thread "main" java.lang.NullPointerException
at myFirst.TestBox.go(TestBox.java:11)
at myFirst.TestBox.main(TestBox.java:8)
...全文
447 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
靠谱么 2017-09-21
  • 打赏
  • 举报
回复
变量在使用的时候要进行赋值说的这么复杂有用么
靠谱么 2017-09-15
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
山外有山,山内也有山,哈哈哈哈哈哈哈
  • 打赏
  • 举报
回复
引用 15 楼 qq_25371977 的回复:
如果只是解决这个问题,说实话太小儿科了,但是这里很多人应该都不明白这个空指针异常产生的具体原理。所以不要看不起这些简单的问题,管中亦可窥豹。
  • 打赏
  • 举报
回复
在 j = i ;这个地方这个是“自动拆箱”的过程,他实际上默认调用了intValue()方法,所以等效于 j = i.intValue(); 而你的i 未赋值所以是null 用null 去掉用方法就会出现空指针异常(java.lang.NullPointerException). 所以你有以下几种做法: 1.把 j = i;改为i = j; 这个是“自动装箱”的过程,int类型的变量初始化之后是0 所以他实际上执行的是 i = new Integer(j);这个没什么问题; 2.在j = i ; 之前给i赋值 如: i = 2;
蓝同学. 2017-09-13
  • 打赏
  • 举报
回复
integer 没赋值是null int是0 integer可以转化成int,int不能等于null
lore-rong 2017-09-12
  • 打赏
  • 举报
回复
首先,在java中局部变量优先于全局变量,你的i没有初始化,直接复制给j这就肯定会报空指针异常。
Timor_D 2017-09-11
  • 打赏
  • 举报
回复
你就只是声明了下,根本没实例化,没实例化是没办法拿来赋值的,你把Integer实例化了 应该就不会报错了。他们之间可以相互转化,会自动拆箱
天涯若风 2017-09-04
  • 打赏
  • 举报
回复
integer是一个对象,默认初始话为null值。然后自己想下,道理是不是这样
Freefish1994 2017-09-04
  • 打赏
  • 举报
回复

Jony.K.Chen 2017-09-04
  • 打赏
  • 举报
回复
一般报java.lang.NullPointerException的原因有以下几种: 1. 字符串变量未初始化; String类型的对象可以做如下判断 if(rb!==null&&!"".equals(rb)) …… 当然还可以多做一个判断,是否不为空字符串 if(rb!==null&&!"".equals(rb.trim())) 2. 接口类型的对象没有用具体的类初始化,比如: List lt; 会报错 List lt = new ArrayList(); 则不会报错了 3. 当一个对象的值为空时,你没有判断为空的情况。 你可以试着把下面的代码加一行代码: if(rb!=null); 你的问题是对基本数据类型和引用数据类型较为模糊,建议你看下引用数据类型的自动拆装箱原理,具体可参考这个网址http://bbs.bjsxt.com/thread-5530-1-1.html 我也在正在学习JAVA,欢迎互相交流!
zx_moy 2017-09-03
  • 打赏
  • 举报
回复
i和j都没赋值,所以默认是null,null不能赋值给j,所以报错,给 i 和 j 赋个初始值的时候就行了。
刚刚好6 2017-09-02
  • 打赏
  • 举报
回复
我也碰到类似的问题了,等答案
刚刚好6 2017-09-02
  • 打赏
  • 举报
回复
转个评分下载资源
kyton123 2017-09-02
  • 打赏
  • 举报
回复
i为空,你也可以吧i和j 设置为同样的数据类型。
李德胜1995 2017-09-02
  • 打赏
  • 举报
回复
i为null...
  • 打赏
  • 举报
回复
i都没赋值当然是NullPointerException,或者把j改成Integer类型

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧