malinkang


人生最可悲的事情,莫过于胸怀大志,却又虚度光阴。


《Effective Java》读书笔记 第7章 方法

第38条:检查参数的有效性

对于公有的方法,要用Javadoc的@throws标签在文档中说明违反参数值会抛出的异常。一旦在文档中记录了对于方法参数的限制,并且记录了一旦违反这些限制将要抛出的异常,强加这些限制就是非常简单的事情了。

 /**
     * Returns a {@code BigInteger} whose value is {@code this mod m}. The
     * modulus {@code m} must be positive. The result is guaranteed to be in the
     * interval {@code [0, m)} (0 inclusive, m exclusive). The behavior of this
     * function is not equivalent to the behavior of the % operator defined for
     * the built-in {@code int}'s.
     *
     * @param m the modulus.
     * @return {@code this mod m}.
     * @throws NullPointerException if {@code m == null}.
     * @throws ArithmeticException if {@code m < 0}.
     */
    public BigInteger mod(BigInteger m) {
        if (m.signum() <= 0) {
            throw new ArithmeticException("m.signum() <= 0");
        }
        return new BigInteger(BigInt.modulus(getBigInt(), m.getBigInt()));
    }

第39条:必要时进行保护性拷贝

第40条:谨慎设计方法签名

第41条:慎用重载

第42条:慎用可变参数

第43条:返回零长度的数组或者集合,而不是null

第44条:为所有到处的API元素编写文档注释

最近的文章

《Effective Java》读书笔记 第8章 通用程序设计

第45条:将局部变量的作用域最小化要使局部变量的作用域最小化,最有力的方法就是在第一次使用它的地方声明。 循环中提供了特殊的机会来将变量的作用域最小化。for循环,都允许声明循环变量(loop variable),它们的作用域被限定在正好需要的范围之内。因此,如果在循环终止之后不再需要循环变量的内容 …

于  , 继续阅读
更早的文章

《Effective Java》读书笔记 第6章 枚举和注解

第30条:用enum代替int常量在编程语言中还没有引入枚举类型之前,表示枚举类型的常量模式是声明一组具名的int常量,每个类型成员一个常量: public static final int APPLE_FUJI = 0; public static final int APPLE_PIPPIN = …

于  , 继续阅读
comments powered by Disqus