【问题标题】:What is the best practice to refer to interface constant within class implementing this interface? [closed]在实现此接口的类中引用接口常量的最佳做法是什么? [关闭]
【发布时间】:2018-01-27 10:07:37
【问题描述】:

接口中的任何常量都隐含为public static final。所以接口常量是一个静态字段。

如果我的班级 ExampleCls 中有一个静态字段 fld,那么 从我的常规 ExampleCls 的任何方法(实例和静态)中引用此静态字段 fld 的最佳实践是通过限定名称:ExampleCls.fld - 区分使用静态字段和使用实例字段。

所以如果类MyCls implements Iface(与int MY_CONST=1 的一些接口),那么MyCls 继承了这个静态MY_CONST 和**我应该如何从MyCls 的实例和静态方法中引用MY_CONST?

  1. 就像 MY_CONST 一样?
  2. Iface.MY_CONST ?
  3. MyCls.MY_CONST ?

什么是公认的最佳做法?在这个问题上是否有不同的意见,或者普遍接受的共识?

【问题讨论】:

  • 我会写 MyCls inherits this static MY_CONST 而不是 MyCls has accsess to this static MY_CONST
  • 感谢您的快速回归!

标签: java interface constants


【解决方案1】:

简单的回答:不要。

我认为当前所有 Java 编码约定都建议constants 放入接口中。将它们放入一个类中,但不要使用接口绕道。

除此之外:如果你的“环境”仍然使用接口常量,那么使用最适合的。换句话说:与为本代码库做出贡献的人坐下来,就共同的编码约定达成一致。

这里没有真正紧迫的技术原因。这仅仅是“仅样式”。如前所述,在这种情况下,您只需选择适合自己的“有效”即可。

【讨论】:

  • 是的,我同意你的看法!但问题仍然存在,因为语言允许这样做,而且周围有很多这样的用途......
  • @CodeComplete 您要求针对不良做法的最佳做法,但不要这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
  • 2013-02-16
  • 1970-01-01
  • 1970-01-01
  • 2014-11-07
  • 2023-03-07
  • 1970-01-01
相关资源
最近更新 更多