1. 对字符串不相等的判断
if
(chapterInfo.getPayMode() != String.valueOf(com.shuqi.base.common.Constant.PAYMODE_BOOK) && chapterInfo.getPayMode() !=
String.valueOf(com.shuqi.base.common.Constant.PAYMODE_CHAPTER) && drawType == DrawType.DRAW_COUNT_DOWN_TYPE) {
mRenderData.setDrawType(DrawType.DRAW_LOADING_TYPE);
}
|
if
(!String.valueOf(com.shuqi.base.common.Constant.PAYMODE_BOOK).equals(chapterInfo.getPayMode()) && !String.valueOf(com.shuqi.base.common.Constant.PAYMODE_CHAPTER)
.equals(chapterInfo.getPayMode()) && drawType == DrawType.DRAW_COUNT_DOWN_TYPE) {
mRenderData.setDrawType(DrawType.DRAW_LOADING_TYPE);
}
|
或者调用 TextUtils.equals() 方法
2. 典型数组越界
![图1](http://doc.ucweb.local/download/attachments/109872173/1_1.jpg?api=v2)
![图2](http://doc.ucweb.local/download/attachments/109872173/2_1.jpg?api=v2)
3. 创建文件夹判断返回值
在创建文件时,虽然判断了文件不存在再创建,但未处理创建失败的情况,会有不可预知的错误,应该处理下创建失败的情况(但不是一味的try),应给外部返回相应的错误码。
4. 创建单实例,保证线程安全
public
static
DownFileManager getInstance() {
if
(mInstance ==
null
) {
mInstance =
new
DownFileManager();
}
return
mInstance;
}
|
public
static
DownFileManager getInstance() {
if
(mInstance ==
null
) {
synchronized
(DownFileManager.
class
) {
if
(mInstance ==
null
) {
mInstance =
new
DownFileManager();
}
}
}
return
mInstance;
}
|
或
public
synchronized
static
DownFileManager getInstance() {
if
(mInstance ==
null
) {
mInstance =
new
DownFileManager();
}
return
mInstance;
}
|
5. 关于弱引用
使用SoftReference.get()可能会有空指针异常, 必须 对返回值进行判断
6. 分支执行代码相同(DB_DUPLICATE_BRANCHES)
这个就是if-else分支中执行的代码是一样的,一种好的编程实践就是在写if时,一定要考虑到是否需要else分支,某些团队要求有if分支,就必须要有else分支,哪怕else分支什么也不做。
7. 需要float或double类型变量,除法运算分子或分母需要一个float或double
8. switch要实现default(SF_SWITCH_NO_DEFAULT)
9. 静态变量尽量final,若需要赋值操作,降低可见性设置set/get方法
不允许直接访问一个变量,必须提供对应的方法来访问,这是一个强制性的规约。静态常量请一定要添加 final 关键字。
10. float与double类型值判断相等的问题
![图3](http://doc.ucweb.local/download/attachments/109872173/3_1.jpg?api=v2)
![图4](http://doc.ucweb.local/download/attachments/109872173/4_1.jpg?api=v2)
请使用Utility.floatEquals方法来判断
public
static
boolean
floatEquals(
float
a,
float
b) {
return
Math.abs(a - b) < .
0000001
;
}
|