当前位置: 首页 > 工具软件 > CodePro > 使用案例 >

CodePro检查代码

夔光霁
2023-12-01
注意: 
在用CodePro检查代码前最好在代码中用ctrl+shift+f 让eclipse自动为代码格式化一遍。 
(灰色部分为暂时不执行部分) 
1. Append String: 
1) String literal can be replaced by a character literal:单个字符用’ ’来取代使用” ” 
错误:sb.append(“a”); 
正确:sb.append(‘a’); 
2.Badly Located Array Declarators: 
1) Badly located array declarators:  
File filesNodeB[] = ServiceAccess.getSystemSupportService().getFiles(fileName)  
数组的声明符放在类型后面不要放在变量后面 
正确:File[] filesNodeB = ServiceAccess.getSystemSupportService().getFiles(fileName)  
3. Boolean Method Naming Convention: 
1) Invalid method name: "isWriteAccess" should not be prefixed with 'is': 
自定义的非Boolean方法名,前缀建议不要命名为is开头,is开头的方法名是为Boolean方法保留的 
错误:public int isWriteAccess(Object obj) 
正确:public int writeAccess(Object obj) 
4. Caught Exceptions: 
1) Disallowed exception caught: Exception  
catch (Exception e) 这样的异常最好能定义成更加详细的异常 
5. Constant Field Naming Convention: 
1) Invalid constant name: "NeInfoAttrNames" contains lowercase letters 
用finall修饰的是常量 名字要全大写 
错误:private final static String[] NeInfoAttrNames 
正确:private final static String[] NEINFOATTRNAMES 
6. Constants in Comparison : 
1) Constant on right side of comparison: 在比较的时候,不变的部分应放在比较的右边。 
错误:if  (this.listeners  ==  null)  
正确:if  (null  ==  this.listeners) 
7. Dangling Else: 
1) Dangling else clause 不规范的else写法,if,else 中只有一条语句也要加{}. 
错误:else 
    return null; 
正确:else { 
       return null; 
    } 
8. Define Load Factor: 
1) Define the load factor of Hashtable instances:hashtable支持线程同步相对来说比较耗系统资源 在定义的时候最好把它的大小和装载因子都定义出来; 
例子:filterMap = new Hashtable(32, 0.75f); 
9. Declared Exceptions: 
1) Disallowed exception declared: Exception 
   public void init() throws Exception这样的异常最好能定义成更加详细的异常 
10. Define Initial Capacity: 
1) Define the initial capacity of StringBuffer instances: 
在定义ArrayList,HashMap, HashSet, Hashtable, Vector, WeakHashMap, 'StringBuffer的时候最好定义初始的容量。 
错误:StringBuffer sb = new StringBuffer(); 
正确:StringBuffer sb = new StringBuffer(32); 
11. Document Closing Braces: 
1)  Undocumented closeing brace:在if ,else等语句结束后应该在”}”后面加 // end if 
   正确:if (null == this.listeners) { 
    return; 
   } // end if 
12. Empty Catch Clause: 
1) Empty catch clause for exception 空的chatch语句 
13. Exlicit“this” Usage: 
1) The keyword “this” is unnecessary:  this 在语句中是多余的 
14. Field Javadoc Conventions: 
1) Missing Javadoc comment for field:缺少JAVA文档注释 
15. Hiding Inherited Fields: 
1) Field hides field inherited from RuntimeException: 
    private static final long serialVersionUID = -2945178819756838045L; 直接删掉这句 
16. Import Order: 
1) Import out of order: 从未用到导入的类 
17. Instance Field Naming Convention: 
1)  Invalid field name: " _ _Table" starts with an underscore 错误的命名 
   错误:private Hashtable _ _Table = new Hashtable(200); 
   正确:private Hashtable _Table = new Hashtable(200); 
18. Method Javadoc Conventions: 
1)  Empty @return tag in getValues 在getValues方法的注释中@return标记的内容为空 
2)  Missing Javadoc comment for method:缺少方法的注释 
19. Missing Block: 
1) Missing block in if clause:if 语句缺少 {} 
错误:if(null == item) 
   return 0; 
正确:if(null == item){ 
   return 0; 
  } 
20. Modifier Order: 
1) Incorrect modifier order: "static" should appear before "final": static应放在final的前面 
错误:private final static String SViewName = "SnmpMocView"; 
正确:private static final String SViewName = "SnmpMocView"; 
21. Platform Specific Line Separator: 
1) Use of a platform specific line separator: 
并不是所有系统都支持“\n”使用System.getProperty("line.separator") 来取代它 
22. Questionable Assignment: 
1)  Questionable method parameter assignment : 可疑的参数分配 
23. Statement Creation: 
1) Invalid SQL statement creation:创建createStatement()应该用预编译语句 
错误:stm = con.createStatement(); 
正确:stm = con.prepareStatement(); 
24. Synchronized Method: 
1) Use of synchronized modifier: synchronized:修饰苻不要放在方法名前面 容易让人忽略修饰苻的存在,最好是放在要修饰的语句快中。 
错误:public synchronized String getName() { 
      ... 
  } 
25. Static Field Naming Convention: 
1) Invalid field name: "segService" starts with lowercase letters。静态变量名第一个字母为大写 
错误:private static SnmpExtGuiService segService; 
正确:private static SnmpExtGuiService SegService; 
26. Return Boolean Expression Value: 
1) An if-statement always return true or false: 
错误:if (index >= 0) 
  { 
   return true; 
  } else 
  { 
   return false; 
  } 
正确:return index >= 0; 
27. Questionable Name: 
1)  Short name found: 命名太短 
28. Type Javadoc Conventions: 
1) Missing @version tag for type BaseSnmpSyntag:在注释中缺少@version 标记 
2) Missing @author tag for type :在注释中缺少@author标记 
29. Unnecessary Exceptions: 
1)  Unnecessary declaration of Exception:不必要的异常 
30. Unnecessary Import Declarations: 
1)  unnecessary Import 多余的Import语句 
31. Use equals() Rather Than ==: 
1) Should not compare values using the equals (==) operator  
比较值的时候用“==”不是总是准确的(根据具体情况来执行equals()方法效率没==高) 
错误:if(cls = = G828.class) 
正确:if(cls.equals(G828.class)) 
32. Unnecessary Return Statement Parentheses: 
1) Unnecessary parentheses around the expression in a return statement:  
在return语句中没有必要的”()” 
错误:return (obj != null); 
正确:return obj != null; 
33. Variable Usage: 
1)  Variable assigned to but not referenced:从没读取过的变量(建议小心删除) 
34. Use Compound Assignment: 
1)  Use compound assignment:  
错误:Pos = Pos + 1; 
正确: Pos += 1; 
这样写可以使代码简单化
 类似资料: