我有一个很简单的问题:
我想要一个 Java 类,它提供一个公共(public)静态方法,它可以做一些事情。这只是为了封装目的(将所有重要的东西放在一个单独的类中)......
这个类既不应该被实例化,也不应该被扩展。这让我写了:
final abstract class MyClass {
static void myMethod() {
...
}
... // More private methods and fields...
}
(虽然我知道,但这是被禁止的)。
我也知道,我可以将这个类设为最终类,并在将其设为私有(private)的同时覆盖标准构造函数。
但这在我看来更像是一种“解决方法”,应该更可能由最终抽象类来完成......
而且我讨厌变通方法。所以只是为了我自己的利益:还有其他更好的方法吗?
最佳答案
没有比使用没有实例的 enum
更简单的了。
public enum MyLib {;
public static void myHelperMethod() { }
}
这个类是最终类,没有明确的实例和私有(private)构造函数。
这是由编译器检测到的,而不是运行时错误。 (不像抛出异常)
关于Java最终抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9618583/