java - object != null 验证

标签 java

这个验证对象是否传递了 null 是 OK 还是我应该使用一种 equals() 方法?

public void addCard(Card card) throws IllegalArgumentException {
        if (card != null){
            cardList.add(card);
        } else {
            throw new IllegalArgumentException();
        }
    }

最佳答案

没错,但就我个人而言,我会以相反的方式构建它。在方法开始时验证参数是很常见的,然后在知道它们是正确的情况下将它们用于方法的其余部分:

public void addCard(Card card) {
    if (card == null) {
        throw new IllegalArgumentException("Attempt to add null card");
    }
    cardList.add(card);
}

预先进行所有参数测试的好处是,如果传递给您的参数无效,您将在任何副作用发生之前抛出异常 - 而不是在方法进行到一半时,这可能使对象处于无效状态。当然在这种情况下没关系,但我赞成这里的一致性 :)

请注意,无需声明 IllegalArgumentException - 它是 RuntimeException 的子类,这意味着它未经检查(您无需声明)。

关于java - object != null 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4036854/

相关文章:

java - 在java中获取反射类的实例

java - 返回 Try 的方法是否允许抛出异常?

java - 如何从 Java 中的 REST Web 服务中的 curl 获取参数值

java - com.mysql.jdbc.PacketTooBigException : Packet for query is too large even with Packet for query is too large even with max_allowed_packet

java - 遗传算法的轮盘赌选择函数

java - 如何避免 Spring Boot 使用我的 MappingJackson2HttpMessageConverter Bean?

java - 从批处理文件中运行具有依赖项的 jar

java - 30秒好像是1小时30秒?

java - 如何修复模块中的错误取决于一个或多个Android库但是是一个jar?

java - 如何调整包含 svg 图像的按钮