【问题标题】:Ensure that a static method is implemented [duplicate]确保实现静态方法[重复]
【发布时间】:2014-12-04 13:41:19
【问题描述】:

我有几个包含静态方法的 Java 类。我想确保这些静态方法由每个类实现。由于 Java 的接口中不允许声明静态方法,我该如何强制执行?

【问题讨论】:

标签: java interface static-methods


【解决方案1】:

如果您有调用这些方法的代码,如果它们没有实现,它将无法通过编译。如果你不这样做,你就真的不需要它们。

【讨论】:

    【解决方案2】:

    排序答案:你不能强制执行。

    静态方法的继承方式与实例方法不同,因此无论如何您都无法将其用于任何有意义的事情:您不能调用 MySuperClass.staticMethod() 并期望某个子类来处理调用。这意味着您必须使用MySubClass.staticMethod() 调用它,在这种情况下,如果MySubClass 没有实现staticMethod,您将收到编译错误。

    我建议您考虑使用单例或工厂模式解决它并使用实例方法:

    MySuperClass.getInstance(parameter).yourMethod()
    

    【讨论】:

      【解决方案3】:

      static 方法在 Java8 中的接口上是允许的。

      但是,没有办法强制类实现静态方法。

      您唯一能做的就是使它们成为非静态的和abstract(在接口或abstract 类中)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-28
        • 1970-01-01
        • 2015-08-06
        相关资源
        最近更新 更多