预防性检测(Defensive checking)数值
- int factorial(int n) {
- if (n < 0)
- throw new IllegalArgumentException("Undefined");
- else if (n >= 13)
- throw new ArithmeticException("Result overflow");
- else if (n == 0)
- return 1;
- else
- return n * factorial(n - 1);
- }
- 不要认为输入的数值都是正数、足够小的数等等。要显式地检测这些前提。
- 一个设计优胜的函数应当对所有可能性的输入值都可以或许精确地履行。要确保所有的情况都推敲到了并且不会产生缺点的输出(比如溢出)。
预防性检测对象
- int findIndex(List<String> list, String target) {
- if (list == null || target == null)
- throw new NullPointerException();
- ...
- }
- 不要认为对象参数不会为空(null)。要显式地检测这个前提。
预防性检测数组索引
- void frob(byte[] b, int index) {
- if (b == null)
- throw new NullPointerException();
- if (index < 0 || index >= b.length)
- throw new IndexOutOfBoundsException();
- ...
- }
- 不要认为所以给的数组索引不会越界。要显式地检测它。
预防性检测数组区间
- void frob(byte[] b, int off, int len) {
- if (b == null)
- throw new NullPointerException();
- if (off < 0 || off > b.length
- || len < 0 || b.length - off < len)
- throw new IndexOutOfBoundsException();
- ...
- }
- 不要认为所给的数组区间(比如,大年夜off开端,攫取len个元素)是不会越界。要显式地检测它。
填充数组元素
使悠揭捉?环:
- Arrays.fill(a, (byte)123);
- 参考:java.util.Arrays.fill(T[], T)。
- 参考:java.util.Arrays.fill(T[], int, int, T)。
复制一个范围内的数组元素
使悠揭捉?环:
推荐阅读
我们天天应用很多Linux敕令行。我们大年夜网上知道一些技能,但如不雅我们不去演习,我们就有可能忘记。我决定做一个关于技能和桥绫桥的列表,这些技能和桥绫桥对于你来说可能是已经忘记的,或>>>详细阅读
本文标题:关于Java习惯用法的总结
地址:http://www.17bianji.com/lsqh/37140.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示