gpt4 book ai didi

java - 将静态方法放在接口(interface)中是一种好习惯吗?

转载 作者:行者123 更新时间:2023-11-30 07:40:48 25 4
gpt4 key购买 nike

假设我的类 Difficulty 中有一个方法 getAverageDifficulty,它是这样的:

public static Float getAverageDifficulty (List<Difficulty> difficultyList) {

...
return average;

}

我的方法显然需要是静态的,因为要求 Difficulty 的实例是没有意义的。现在假设我正在使用一个接口(interface) IDifficulty,这样我可以稍后更改我的实现。显然,我确实希望我的 getAverageDifficulty 方法可以从 IDifficulty 获得,并且由于我无法声明静态方法抽象,显而易见的选择是将 getAverageDifficulty 直接在我的界面中。我的问题是:将静态方法放在我的接口(interface)中是否犯了错误,该接口(interface)包含其他等待实现的 Difficulty 方法?我不应该混合静态和“普通”接口(interface)抽象方法吗?我应该创建 DifficultyHelper 类并将我的方法放在那里吗?

最佳答案

归根结底,这是一个风格问题。但是,如果辅助类的唯一目的是保存此方法(可能还有一些类似的方法),那么您将通过将它们放在接口(interface)中来为自己节省一个类定义:

As of Java 8, the restriction that interfaces cannot contain static methods was eliminated, so there is typically little reason to provide a noninstantiable companion class for an interface [Effective Java, 3rd edition].

关于java - 将静态方法放在接口(interface)中是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56976170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com