用私有构造函数强化不可实例化能力

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

有时候我们会编一些只含有静态域和静态方法的类.比如把操作原始类型和数组类型的方法集中起来:Java.lang.Math,java.util.Arrays..或者把操作在特定接口之上的对象的方法集中起来,比如java.util.Collections.

这个时候,不要试图创建一个abstract 类来使之不可实例化,因为abstract类可以被继续,最终被实例化.也不要试图不给出构造函数,因为即使这个类没有构造函数jvm也会给出一个默认的构造函数.

所以,可以给出一个显示的私有构造函数,确保不可实例化.

Example:

// Noninstantiable utility class - page 12

public class UtilityClass {

// Suppress default constrUCtor for noninstantiability

private UtilityClass() {

// This constructor will never be invoked

}

// ...// Remainder omitted

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航