java.lang.NullPointerException出現的几类缘故:
1、字符串数组自变量未复位 2、接口方式的目标没有用实际的类复位,例如: Mapmap//会出错 Mapmap=newMap();//则不容易出错了 3、当一个目标的数值空时,你没有分辨为空的状况。 4、字符串数组与文本的较为,文本能够是一个字符串数组或Enum的原素,以下会发现异常 Stringstr=null; if(str.equals(“Test”)){ //这儿的编码将不容易被开启,由于会抛出去java.lang.NullPointerException出现异常。 } 5、优先选择应用String.valueOf()方式替代toString() 当编程代码必须目标的字符串数组表明方式时,请防止应用该目标的toString方式。假如你的目标的引入相当于null,NullPointerException则会抛出去,应用静态数据String.valueOf方式,该方式不容易抛出去一切出现异常并打印"null" 6、class被申明了种类,默认设置class=null;那样在启用class中方式的情况下系统软件只有给你空指针异常,给其实例化就好了:class=newClass(); 7、回到null,方式的返回值不必界定变成一般的种类,只是用数组。那样假如要想回到null的情况下就能防止很多多余的NullPointerException
总而言之,NullPointerException由RuntimeException继承出去,是一个运作时出现异常。其义指很有可能会在运作的情况下才会被抛出去,一个自变量是null,及仅有其名,沒有实值內容,也没分配内存,如果你要取走他的长短,对他开展实际操作便会出現NullPointException,因此 申明自变量时最好是给它分派好存储空间,给与取值,比如拿该自变量与一个值较为时,要不先搞好该出现异常的解决要不给它开展分辨先:if(str!=null&&str“”){…}
分辨一个String的案例s是不是相当于“a”时,不必写出s.equals(“a”),那样非常容易抛NullPointerException,而写出"a".equals(s)就可以防止这个问题,但是对自变量先开展判空后再开展实际操作更强,尽量减少回到null,方式的返回值不必界定变成一般的种类,用数组。那样假如要想回到null的情况下,就回到一个沒有原素的数组。就能防止很多多余的NullPointerException
下面的图为出现异常布局图: