???????????????????????????????????20??????????????????????????ú????????????л??Щ????????????????…
????“?κο??????????飬????????”
??????????????????????“????????????”??????????????????????壬??????????????????????????????????д??????????????е?????????????г???????о???????????? 10 ?? Java ?????ɡ?????
????1. ??????????????????
???????????????????????????equals()?????????????????? NullPointerException ???????????????????????????
????// Bad
????if (variable.equals("literal")) { ... }
????// Good
????if ("literal".equals(variable)) { ... }
???????????????????????????????????????????????????????????????Options???????????Java 8?? Optional???????????????е????????????????????…
????2. ????????????JDK APIs
????Java????????????????????????????????API????????????????????????????????δ???
????String[] files = file.list();
????// Watch out
????if (files != null) {
????for (int i = 0; i < files.length; i++) {
????...
????}
????}
?????????????????????????????????Javadoc??
????“???????·?????????????????????????????????null???????????????????????????????????????????μ?????????????”
????????????????п??飬??????????
????if (file.isDirectory()) {
????String[] files = file.list();
????// Watch out
????if (files != null) {
????for (int i = 0; i < files.length; i++) {
????...
????}
????}
????}
??????????Υ???? Java ?????? 10 ?????????? ?????5???6?????????????? null??飡
????3. ???????“-1”
????????????????Javadoc?й??? String.indexOf() ??????????????????…
????“?????????????е???γ????λ?y???????[??????]??????????????????-1??”
?????????-1 ?????????????????????????????????????????
????// Bad
????if (string.indexOf(character) != -1) { ... }
????// Good
????if (string.indexOf(character) >= 0) { ... }
??????????????????????????????????????????? ?????????????????Сд?????otherString ?????????…????????????? -2??????????
??????????????з???????NULL——????????????????????????????????? -1??????????????? -1 ?? null ??int?????μ???????????
????4. ???????????
??????????????????????????????????????????????#7????
??????????????JavaScript????????????????????????????
????// Ooops
????if (variable = 5) { ... }
????// Better (because causes an error)
????if (5 = variable) { ... }
????// Intent (remember. Paranoid JavaScript: ===)
????if (5 === variable) { ... }
?????????顣????????????г?????????????????????????????????????? = ?????????????
????5. ???null?????
????????????????????????????????????????????????????????
????// Bad
????if (array.length > 0) { ... }
????// Good
????if (array != null && array.length > 0) { ... }
???????????Щ???????????????????????JDK API???