java - 实例变量验证

标签 java effective-java

阅读《Effective java》,它提到我们需要验证方法参数作为一个好的实践,为公共(public)方法抛出异常,为私有(private)方法断言。但是,我们是否需要对实例变量采取任何措施?

EG:(不要将示例作为用例,主要问题是我需要验证实例变量还是不需要?。示例仅用于解释我的意思。)

class Tree {

   private Node root;

   public doSomething() {
      TreeNode node = root;
   }
}

现在假设root从未初始化并且直接调用doSomething(),这将导致NullPtrException。

我们需要防范吗?如果是的话怎么办?如果没有那为什么不呢?

最佳答案

怎么样:

if (root == null) {
    throw new SomethingException();
}
TreeNode node = root;

简单地说,只需对 root 变量执行 null 检查,如果为 null,则执行相应的代码来修复该问题或为其抛出新的异常。

关于java - 实例变量验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19035127/

相关文章:

Java 8 - 单词计数,然后按降序排列

java - 为什么抑制这个未经检查的警告是安全的?

java - 什么是断言错误?在哪种情况下我应该从我自己的代码中抛出它?

java - 如何将 JSON key 从 POJO 的 camelCase 更改为 snake case?

Java Spring @Transactional 方法没有按预期回滚

java - 有效的 Java 项目 76 : Serialization & Security - How exactly hacker gets references to the internal Date fields of immutable Period object?

java - Effective Java 中的 ElvisStealer

java - 原始类型总是不好吗?

Java - 能够交错来自多个 Reader 的行的 Reader 类

java - 返回数组中 K 最大的元素。 (JAVA)