Java最终抽象类

标签 java class abstract final

我有一个很简单的问题:

我想要一个 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/

相关文章:

java - 如何缩小 Thymeleaf 生成的 HTML

java - 为什么外部(库)属性文件需要 placeholderPrefix?

java - 在android中读取嵌套的json字符串

具有静态类成员的 C++ 模板类

java - java中抽象方法的不同返回类型而无需强制转换

java - 如何在 Java 的抽象类中强制实现嵌套抽象类?

java - 如何防止 Tomcat6 在 WEB-INF/lib 中预加载 JDBC 驱动程序?

python - 使用枚举作为类中的标志,Python

java - 什么是类对象(java.lang.Class)?

python - 为什么Python允许抽象方法有代码?