gpt4 book ai didi

java - 在构造函数中初始化变量后的验证 : why not the other way?

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:06:27 30 4
gpt4 key购买 nike

在查看 Java 库时,特别是构造函数,我注意到字段通常会出于某种原因进行初始化和验证:

public java.awt.Color(int r, int g, int b, int a) {
value = ((a & 0xFF) << 24) |
((r & 0xFF) << 16) |
((g & 0xFF) << 8) |
((b & 0xFF) << 0);
testColorValueRange(r,g,b,a);
}

首先初始化字段然后验证方法参数有什么意义?不应该反过来吗?它只是一种编码约定还是有任何实际用途?

最佳答案

一般来说,应该在方法或构造函数中之前检查方法体的其余部分。 Joshua Bloch 在 Effective Java 一书中提到了这一点。相关部分可在以下链接中找到:

http://www.informit.com/articles/article.aspx?p=31551

有一些异常(exception),但都不适用于这种情况。我对 java.awt.Color 类为什么在最后进行检查的猜测是一些核心 Java 类没有遵循被认为是最佳实践的内容,尤其是像 java.awt.Color 这样非常古老的类。有许多以有害方式违反某些规则的 Java 语言类示例。如果您还没有机会阅读那本书,我强烈建议您阅读。

关于java - 在构造函数中初始化变量后的验证 : why not the other way?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39188318/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com