工具:利用Android studio的快捷键 Ctr + F1给出的warning提示,规范化代码,并去除无用代码,使用快捷键Alt+Enter,但是并非所有的场景是能依靠编译器解决,有些是需要自己亲自更改的。
编译器: https://github.com/JetBrains/intellij-community 【在这里可以找到所有的提示信息】
1
导读:检查到当前全部变量建议改为局部变量,直接使用快捷键Alt+Enter -> Convert to local 并行修改即可,原因是它仅仅只在一个方法中使用到了,定义变量的一个原则,尽量最小化变量的作用域,一来可读性提高了,二来降低了代码的错误率。
http://stackoverflow.com/questions/31713073/field-can-be-converted-to-a-local-variable-message-appearing-when-setting-acti
http://blog.csdn.net/ys743276112/article/details/505175242
导读:把长整形小l替换成大L,原因是字母l容易和数字1混淆,可读性变差。
http://arguscodewatch.sourceforge.net/documentation/lowercasel.html3
导读:删除无用代码,进行安全删除 ,删除变量。4
导读:这个三目运算可以直接替换为二目运算,多此一举 ,直接简化。5
导读:条对于多分支判断语句,编译器提示存在一个判断语句是一个常量值。
https://github.com/JetBrains/intellij-community/blob/master/resources-en/src/inspectionDescriptions/ConstantConditions.html6
导读:条件语句需要添加方法体7
- 8
9
参考文档:
http://badlogicgames.com/forum/viewtopic.php?t=22199&p=91529
https://code.google.com/p/android/issues/detail?id=19124910
11
导读:这里需要区分两者之间的差别了,StringBuffer 缓存,是线程安全的,意味着在需要多线程场景中,同步方法中一次仅仅只允许一个线程来访问缓存对象,这样StringBuffer objects are generally safe to use in a multi-threaded environment where multiple threads may be trying to access the same StringBuffer object at the same time.而StringBuilder 创建者访问不同步,所以是非线程安全的,意味着在多线程场景下会出现多个线程同时访问同一个对象,造成脏数据的异常,但是在非同步,单线程场景中,builder 的性能是优于 buffer 的,局部变量这种也是需要使用builder 的。
http://stackoverflow.com/questions/6174259/why-use-stringbuilder-stringbuffer-can-work-with-multiple-thread-as-well-as-one12
导读:赋空值是多余的。还是一种场景是赋了值也从来没有使用过,一旦被重新赋值,立刻就会被废弃掉but that value is never used. It is discarded immediately when you reassign it。13
导读:提示可能存在空指针异常的风险,这种场景需要做一层判空操作。14
导读:静态域和方法需要通过类实例而不是类本身来引用,Activity.RESULT_OK来替换getActivity.RESULT_OK。
未完待续。。。