WEB开发网
开发学院软件开发Java 使用 IBM 静态工具优化 Java 代码,第 2 部分: 分... 阅读

使用 IBM 静态工具优化 Java 代码,第 2 部分: 分析错误报告

 2010-01-11 00:00:00 来源:WEB开发网   
核心提示: 1String[]str=null;2System.out.println(str[0]);3str[0]="developerWorks";第 2 行和第 3 行都会导致 ERROR2 错误,其中第 2 行试图访问空数组对象 str 的第 0 个元素,使用 IBM 静态工具

 1  String[] str = null; 
 2  System.out.println( str[0]); 
 3  str[0] = "developerWorks" ; 

第 2 行和第 3 行都会导致 ERROR2 错误,其中第 2 行试图访问空数组对象 str 的第 0 个元素,第 3 行试图给空数组对象 str 的第 0 个元素赋值。

总结:访问或修改某个空数组对象的数组元素的起因与调用空对象的方法类似,通常是由于某些特殊情况导致原本应该初始化的数组对象没有被初始化,从而接下来访问或修改其数组元素时产生 java.lang.NullPointerException 异常。

建议的解决方法:与调用空对象的方法类似,尽量在访问或修改某些不能够明确判断是否为空空数组对象的数组元素之前,对其进行空对象判断,从而避免对空数组对象的操作。

同步空对象

清单 5. 同步空对象

 String s = null; 
 int a = 0;   
 
 switch( a ) { 
  case 1: s = new String("developer"); 
  case 2: s = new String("Works"); 
  default: 
 ; 
 } 
 
 synchronized( s ){ 
  …… 
 } 

对空对象 s 进行同步。

总结:同步空对象的起因与调用空对象的方法类似,通常是由于某些特殊情况导致原本应该初始化的对象没有被初始化,从而接下来导致同步空对象,并产生 java.lang.NullPointerException 异常。

建议的解决方法:与调用空对象的方法类似,尽量在同步某些不能够明确判断是否为空的对象之前,对其进行空对象判断,从而避免对空对象的操作。

传入空对象参数

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 IBM 静态

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接