gpt4 book ai didi

java - 在接口(interface)中定义常量是什么意思?

转载 作者:搜寻专家 更新时间:2023-10-31 08:15:35 24 4
gpt4 key购买 nike

我知道在 Java 中,有人可以通过声明 public static final 将常量包含在接口(interface)中。但是,假设我有这样一个接口(interface),名为 I,它只包含 public static final 常量,没有方法签名,还有一个名为 C 的类。为什么我要在 C 中实现 I?即我为什么要执行以下操作:

公共(public)类 C 实现 I

既然常量是公共(public)的和静态的,难道我不能通过 I 直接访问它们吗?

最佳答案

这个(反)模式很有用,因为它允许您使用这些常量的名称,而不必在它们前面加上 I.。这曾经是一种常见的技术,但现在您可以使用 import static 以同样的方式导入常量,它已经失宠了。避免它的一个原因是常量集实际上不是一个接口(interface)——它只是一堆值——并且使它成为一个接口(interface)可以让你做一些奇怪的事情,比如写

ConstantInterfaceWithNoMethods m = new ClassImplementingThatInterface;

if (m instanceof ConstantInterfaceWithNoMethods)

这在这种情况下是没有意义的。

希望这对您有所帮助!

关于java - 在接口(interface)中定义常量是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10607305/

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