java - Java 类中的最终可选成员变量

标签 java inheritance constructor pmd

我有一个场景,在某些情况下,某些在类级别声明的最终变量是可选的。

这意味着我有不同的构造函数。其中一些必须将成员变量保留为空值。

由于我已将变量声明为 final,因此我不得不在构造函数中初始化这些变量。所以我必须在构造函数中添加 var = null; 语句。

但是明确地将变量分配给 null 被认为是一种不好的做法,像 PMD 这样的工具将其报告为违规行为。 (PMD 中有争议的规则。但不想将其关闭,因为我不希望在我的代码的其他区域实现空赋值)

实现此目标的任何其他建议或良好做法?

最佳答案

您可以使用构造函数链接,将 null 传递给您的实例中未使用的值。 (如果我们讨论继承,您可以使用 super 构造函数,或者在同一个类中使用不同的构造函数。) 毕竟我会重新考虑你的类的设计,例如将可选部分提取到不同的类。

关于java - Java 类中的最终可选成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20189149/

相关文章:

c++ - 在运行时在 C++ 中组合几个类的类

c# - Azure 移动服务 Tablecontroller updateAsync 最终出现内存不足异常

java - 如何正确地将InputStream传递给另一个构造函数? ( java )

java - 与构造函数一起工作并且极度困惑

java - 如何创建其他项目使用的通用 gradle 项目

java - 不同包中源文件的 Android ClassNotFoundException

java - 如何获取 ActiveMQ - 单个发送方和接收方的 FIFO 要求?

C++ - 从抽象基指针调用派生函数

c++ - SFINAE 上的默认参数值

java - 如何将一个段落分成句子