查看: 539|回复: 0

[Java学习] 学Java编程需要知道常见的不规则代码

发表于 2017-8-7 14:38:36
尚学堂AD

在工作上,我最近对一个现有的Java项目代码进行了清理。完成之后,我发现了一些反复出现的不规范代码。所以,我把它们整理成了一个列表出来分享给我的同行希望能引起注意并改善代码的质量和可维护性。
这个列表不区分顺序,全部来自一些代码质量检查工具,如 CheckStyle, FindBugs PMD。
Eclipse中格式化源代码并管理import语句
Eclipse提供了自动格式化源代码和管理import语句的功能(并移除未使用的语句)。你可以使用下面的快捷键来使用这些功能。
Ctrl + Shift + F – 格式化源代码。
Ctrl + Shift + O – 管理import语句并移除未使用的语句。
除了手动执行这两个功能外,你还可以让Eclipse在保存文件的时候自动格式化源代码并自动管理import语句。要做到这个,在Eclipse中,到 Window -> Preferences -> Java -> Editor -> Save Actions并启用 Perform the selected actions on save,选中 Format source code和 organize imports。
避免在方法中出现多个return语句(退出点):
在你的方法中,确保只有一个 退出点。不要在一个方法中使用多于一个return语句。
如,下面的代码是 不推荐的,因为它有多个退出点(return语句)。
private boolean 4 se 1 4 g 4 ble ( age (
if age > 1 8 (
retun true
else
return false
        }
         }
private boolean⊥9E1g4b1e( int age)【
boolean resul
if age > 1 8 (
result = true :
else [
result = false ;
}
return result
}
简化if-else方法:
我们写了一些只要一个参数的工具方法,检查一些条件并根据条件返回一个值。如,在上面见到的 isEligible方法。
private boolean⊥9E1g4b1e( int age)【
boolean resul
if age > 1 8 (
result = true :
else [
           result = false ;
}
return result ;
}
可以只使用return语句来重写词方法
拍阿特 boolean i&Elingible{int age}{
Teturn age > 18;
}
不要为Boolean,Integer或String创建新的实例:
避免创建新的Boolean,Integer,String等实例。使用Boolean.valueOf(true)代替new Boolean(true)。两种写法效果差不多但却可以改善性能。
在代码块周围使用大括号:
永远不要忘记在块类型语句(如:if,for,while)周围使用大括号。这可以减少代码歧义并且避免在你修改代码块的时候产生新的bug。
不推荐

if age > 1 8
return true
else
return false

推荐
if age > 1 8 t
return true
Else [
return false
}
把方法的参数声明为final类型:
总是在所有兼容的地方把把方法的参数声明为final。这样做的话,当你无意中修改了参数的值,编译时会得到警告,并且编译生成的字节码也会得到优化。
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsA522.tmp.png
用大写命名public static final类型成员变量:
总是使用大写命名用public static final类型变量。这样可以让你很容易区分常量和本地变量。
不推荐
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsA533.tmp.png 1 . public static final string testaccountno = " 1 2 3 4 5 6 7 8 ;
把多个if语句合并成一个:
下面的代码

if age > 1 8 )
if ( voted = = false ) i
e1igib1et。vte,
}
}
可以使用一个i语句改写为:
if age > 1 8 & & ! voted )
/e1igib1et。Vote
}
别忘了给switch添加default语句:
总是给switch添加一个default语句。
避免 重复 使用同样的字符串,创建一个常量吧:
如果你需要在多个地方使用同一个字符串,那就创建一个字符串常量来使用吧。
下面的代码:
private void somemethod ( ) (
        logger . ( " my application + ) ;
          ....
....
logger . log ( " my application " + = ) :
}
可以创建一个常量代替字符串" My app1 acation":
public static final string mi app = " my application "
        private void somemethod ( ) (
        logger . log ( my app + e ) i
....
....
logger . log ( app + 4 ) i
}
动力节点针对上班族,在校生,自学者开设了Java直播课堂(夜校班),由大咖直播授课,学员在业余时间学习,为没有时间全日制面授的学员打开通往java工程师之路的大门。Java夜校班由动力节点副教学总监,金牌讲师付老师带队并亲自授课,夜校班秉承动力节点一贯的专业品质态度,在课程质量,学生素质,就业服务上相当严格要求,并以学业满意就业为终极目标,打造国内一流Java业余培训班,感兴趣的同学不妨关注动力节点了解一下吧。



回复

使用道具 举报