方法

第三十八条:检查参数的有效性

  1. 在这个方法执行之前先对参数进行检查。

第三十九条:必要时进行保护性拷贝

  1. 对于构造器的每一个可变参数(指引用类型参数)进行保护性拷贝是必要的,防止其他对方改变值,从而避过这些参数需要满足的条件。
    public Period(Date start,Date end){
        this.start=new Date(start.getTime())
        this.end =new Date(end.getTime());

        if(this.start.compareTo(this.end)>0){
            throw new Exception("...");
        }
    }
  1. 保护性拷贝是在检查参数有效性之前进行的,并且有效性检查是针对拷贝之后的对象,而不是针对原始的对象。
  2. 对于参数类型可以被不信任方子类化的参数,请不要使用clone方法进行保护性拷贝,需要new一个新对象出来。
  3. 由于一个类的实例他的访问方法提供了对其可变内部成员的访问能力,意味可以改变内部成员的值,所以需要针对两个访问方法,如果信任调用者不会改变这些参数的值,也可以不进行保护性拷贝。
    public Date start(){
        return new Date(start.getTime());
    }

    //下同

第四十条:谨慎设计方法签名

  1. 谨慎地选择方法的名称.名称应遵循标准的命名习惯(见第56条)。首要目标是易于理解,并且与系统保持一致。如有疑问,请参考Java类库。
  2. 不要过于追求提供便利的方法。对于类和接口所支持的每个动作,都提供一个功能齐全的方法。
  3. 避免过长的参数列表。两种方法可以缩短过长的参数列表:

    (1). 把方法分解成多个方法。

    (2). 创建辅助类,用来保存参数的分组。一般为静态成员类,如果一个频繁出现的参数序列可以被看作是代表了某个独特的实体,建议使用该方法。
  4. 对于参数类型,要优先使用接口而不是类。
  5. 对于Boolean参数,要优先使用两个元素的枚举类型。
   Boolean.TRUE;Boolean.FALSE;   

第四十一条:慎用重载

  1. 永远不要导出两个具有相同参数数目的方法。

第四十二条:慎用可变参数

  1. 声明该方法带有两个参数,一个是指定类型的正常参数,另一个是这种类型的varargs参数
    public void min(int firstArg,int... othersArgs){
        ...
    }

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

  1. 返回类型为数组或者集合的方法没有理由返回null,而不是返回一个零长度的数组或者集合。可以使用Collection,emptySet、emptyList和emptyMap方法。

第四十四条:为所有导出的API元素编写文档注释

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012294371/article/details/53998872
个人分类: effective Java
上一篇枚举和注解
下一篇通用程序设计
想对作者说点什么? 我来说一句

哈夫曼编码11111111111111

2008年12月04日 29KB 下载

matlab的图像压缩

2009年04月21日 475B 下载

css中文手册

2011年09月15日 215B 下载

AO开发的详细案例5555555555555

2008年09月02日 2.07MB 下载

好用的屏幕录象专家网络版

2008年12月31日 9.28MB 下载

php配置方法,php配置方法

2010年06月08日 3KB 下载

DLL 好的BT 方法

2009年05月08日 56KB 下载

子网子网划分方法划分方法

2010年03月22日 10KB 下载

没有更多推荐了,返回首页

关闭
关闭