《编写高质量代码:改善Java程序的151个建议》 建议9
来源:互联网 发布:彩票平台源码 编辑:程序博客网 时间:2024/04/26 18:20
9. 少用静态导入
为了减少字符输入量,提高代码的可阅读性,以便更好地理解程序,从Java 5开始引入了静态导入语法( import static )。
// 简单的导入public class MathUtils{ public static double calArea(double r){ return Math.PI * r * r; }}// 静态导入import static java.lang.Math.Pi;public class MathUtils{ public static calArea(double r){ return PI * r * r; }}
用 Math.PI 这个语法,使程序简洁了很多,也更容易阅读。
但这是基于看到 PI 就知道这是圆周率这种被大家熟知的范畴,想想都知道,如果滥用静态导入会使程序更难阅读,也更难维护,一旦使用了静态导入,代码中就不用再写类名,这时属性和方法的表象意义可以被无限放大,让阅读者很难弄清楚它们代表什么意思,甚至是哪个类的属性(方法)都要思考一番(友好的IDE提示功能另说)。如果引入的是 * 通配符,那简直就是灾难。
import static java.lang.Double.*;import static java.lang.Math.*;import static java.lang.Integer.*;import static java.text.NumberFormat.*;import java.text.NumberFormat;public class Client {public static void main(String[] args){double s = PI * parseDouble(args[0]);NumberFormat nf = getInstance();nf.setMaximumFractionDigits(parseInt(args[1]));System.out.println("面积:" + nf.format(s));}}所以,对于静态导入,要遵循两个规则:
1. 不使用 * (星号)通配符,除非是导入静态常量类(只包含常量的类或接口)。
2. 方法名是具有明确、清晰表象意义的工具类。
如 JUnit4 中使用的静态导入例子:
import static org.junit.Assert.*;public class DaoTest{@Testpublic void testInsert(){}//断言assertEquals("foo","foo");assertFalse(Boolean.FALSE);}
0 0
- 《编写高质量代码:改善Java程序的151个建议》 建议9
- 《编写高质量代码:改善Java程序的151个建议》 建议1
- 《编写高质量代码:改善Java程序的151个建议》 建议2
- 《编写高质量代码:改善Java程序的151个建议》 建议3
- 《编写高质量代码:改善Java程序的151个建议》 建议4
- 《编写高质量代码:改善Java程序的151个建议》 建议5
- 《编写高质量代码:改善Java程序的151个建议》 建议6
- 《编写高质量代码:改善Java程序的151个建议》 建议7
- 《编写高质量代码:改善Java程序的151个建议》 建议8
- 《编写高质量代码:改善Java程序的151个建议》 建议10
- 《编写高质量代码:改善Java程序的151个建议》 建议11
- 《编写高质量代码:改善Java程序的151个建议》 建议13
- 《编写高质量代码:改善Java程序的151个建议》 建议14
- 《编写高质量代码:改善Java程序的151个建议》 建议15
- 《编写高质量代码:改善Java程序的151个建议》 建议16
- 《编写高质量代码:改善Java程序的151个建议》 建议17
- 《编写高质量代码:改善Java程序的151个建议》 建议18
- 《编写高质量代码:改善Java程序的151个建议》 建议19
- Leetcode: Find Minimum in Rotated Sorted Array II
- JFreeChart 使用 一 直方图之柱状图-高级特性
- 为什么Android与PC平台按照opengl坐标贴纹理会出现颠倒
- 第九周项目4
- 外文文献查询网站
- 《编写高质量代码:改善Java程序的151个建议》 建议9
- java 搜索文件
- Running the app on your device
- Mark走起!iOS开发最常用的第三方库
- JFreeChart 高级应用 一 定制图表
- C语言 已知的字符串中找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
- Java Dom Parse XML
- 外文文献查询网站
- dgsgds噶萨嘎萨嘎水开后更快更好看看过后