Java实用程序类

public final class SomeUtilityClass {
    public static final String SOME_CONSTANT = "Some constant";

    private SomeUtilityClass() {}

    public static Object someUtilityMethod(Object someParameter) {
        /* ... */

        return null;
    }
}

现在,随着接口中的静态方法在Java 8中,我最近发现自己使用了实用程序接口模式:

public interface SomeUtilityInterface {
    String SOME_CONSTANT = "Some constant";

    static Object someUtilityMethod(Object someParameter) {
        /* ... */

        return null;
    }
}

这允许我去掉构造函数,以及许多关键字(publicstaticfinal)是在接口中隐式的。

这种做法有什么坏处吗?在实用程序接口上使用实用程序类有什么好处吗?

小川小川提问于
风华一代paranoid android回答于

我觉得会管用的。变量SOME_CONSTANT默认为SomeUtilityInterface中的静态Final。

回答过的其他问题

怎样使用AI提升运维效率?

风华一代paranoid android
随着云计算的到来,云计算指的是通过网络和人工智能(AI)共享计算资源,现在业务形态正在彻底改变。” 人工智能,目前是主流,可以从大量数据中获得新的认可,人们无法通过深度学习来处理自己。深度学习是一种新的机器学习方法,可以根据数据本身独立创建特征值。这是机器学习的补充,它从收集的...... 展开详请

视频检测和处理领域的现状和前景怎么样?

风华一代paranoid android

视频处理会不会很慢。难以应用到实时场景?

腾讯云TStack上的云Oracle有哪些优点和应用?

风华一代paranoid android

成本低

单位容量成本(元/TB)是EMC高端存储的1/10;

整套成本是EMC存储方案的1/5

Kafka对实时数据的主要优势是什么?

风华一代paranoid android
Kafka是一个分布式发布 - 订阅消息传递系统,它是现有解决方案的快速,可扩展且持久的替代方案。 Kafka对于处理实时数据特别有用,例如与管理半卡车车队和工业HVAC单元相关的数据。 像大多数类似的系统一样,  Kafka跟上主题内的消息提要。生产者在主题中创建数据,消费者...... 展开详请

C ++中的“ - >”运算符是什么?

风华一代paranoid android

这是一个非常复杂的操作员,因此即使ISO / IEC JTC1(联合技术委员会1)也将其描述放在C ++标准的两个不同部分。

它们是两个不同的运营商:-->分别在§5.2.6/ 2和C ++ 03标准的§5.9中描述。

关于Git stuck at git pull upstream master

风华一代paranoid android
检查你的core.editor git config --global core.editor git pull upstream master卡住了没有指定编辑器,你可以指定为: git config --global core.editor "gedit" 现在,如果...... 展开详请

关于作者

所属标签

扫码关注云+社区