Effective Java---No.4 通过私有构造器强化不可实例化的能力

众所周知,有时候一些工具类是不希望被实例化的,因为实例化根本没意义,而如果在缺少构造器的情况下编译器会自动给其添加一个公有的,无参的缺省构造器。对于用户而言,这个构造器和其他的是一样的。

将其做成抽象类就更加不可取,因为他的子类仍旧可以实例化,而且会误导用户。这时候其实只要有个私有的构造器就可以解决这个问题。

public class AAA{
//Suppress default constructor for noninstantiability
private AAA(){
throw new AssertionError();
}
}

再写这种构造器的时候最好带点注释,这样不会给别人带来烦恼。

这种可以避免实例化,当然也有缺点,他不能被子类化。

转载于:https://www.cnblogs.com/Tony-Shen/archive/2012/03/08/2384736.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值