我有一个类,它提供了一组静态实用程序类型的方法.
一方面,我不希望该类能够被实例化.另一方面,我不想发送该类应该继承的信号(不是我认为它可能).
这个班级应该是抽象的吗?
mre*_*mre 12
创建类final并创建默认构造函数private,不提供任何public构造函数.这样,没有人可以将其子类化或创建它的实例.
不要声明abstract; 声明一个private构造函数,所以没有人,甚至是子类,都不能实例化你的实用程序类的实例.
你可以声明你的类final,虽然如果所有构造函数都是private,那么无论如何都没有人能够对它进行子类化.
要在另一个答案中借用Pshemo的注释,在构造函数中抛出一个RuntimeException,以防止AccessibleObject中的反射setAccessible方法允许实例化:
public class MyUtility
{
private MyUtility()
{
throw new RuntimeException("Instantiation of MyUtility is not allowed!");
}
public static void utilityMethod()
{
// Your utility method here.
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
786 次 |
| 最近记录: |