从不使用公共嵌套枚举?
2022-09-04 03:27:11
我最近遇到了一个编码标准,声称你永远不应该在Java中使用公共内部枚举/类。这是我第一次遇到这个惯例,并且无法找到令人满意的解释。
我理解为什么应该避免使用公共内部类,但是出于什么原因,你永远不会使用公共嵌套枚举呢?或者,为什么这是一个不好的惯例?
我最近遇到了一个编码标准,声称你永远不应该在Java中使用公共内部枚举/类。这是我第一次遇到这个惯例,并且无法找到令人满意的解释。
我理解为什么应该避免使用公共内部类,但是出于什么原因,你永远不会使用公共嵌套枚举呢?或者,为什么这是一个不好的惯例?
免责声明:以下不是硬性规定。这些只是我的观点和个人喜好。我个人发现它使我的代码更易于阅读和维护。
首先是一个问题。您是从哪里得到这个建议的?他们是否提供了任何理由?
根据我的经验,我通常使用私有嵌套枚举来增强代码的可读性和可维护性。当您执行与另一个系统的集成并且必须发送特定的字符串或数字时,这尤其有用。我发现使用枚举使内容更易于阅读和维护。在这种特定情况下,枚举传达的信息在范围上仅限于类(即,它在类之外没有意义,也没有其他人需要它)。
我想不出一个明确的理由来说明为什么公共内部枚举是一种不好的做法。但以下是我(通常)不使用它们的原因:
ThirdPartyResponseCodes.Success
ThirdPartyIntegrationInterface.ThirdPartyResponseCodes.Success
原因大概是它使这些枚举难以在声明它们的类之外使用,因为您必须使用封闭类的名称来限定它们。当然,对于任何公共内部阶级来说也是如此。我不确定我是否同意它 - 当然不是一个硬性规定。