章节:方法设计
- 重点:方法设计的可用性、稳健性和灵活性。
- 覆盖范围:参数和返回值处理、方法签名设计和文档。
第 49 项:检查参数有效性
- 参数限制:
方法和构造函数通常对参数值有限制(例如非负索引、非空引用)。
这些限制必须在方法开始时记录并验证。
- 验证的重要性:
尽早检测错误,以避免方法中出现意外故障或不正确的行为。
不检查参数的方法可能会导致难以调试的崩溃。
- 异常文档:
使用 @throws Javadoc 标签记录违反约束时引发的异常。
常见异常:IllegalArgumentException、IndexOutOfBoundsException、NullPointerException。
参数检查示例:
public static int mod(int x, int y) { if (y <p><strong>- Objects.requireNonNull 的使用:</strong><br> Java 7 中引入,用于检查对象的可空性。<br> 返回验证后通过的值:<br> </p> <pre class="brush:php;toolbar:false">this.m = Objects.requireNonNull(m, "Parâmetro 'm' não pode ser nulo");
- 范围检查(Java 9):
checkFromIndexSize、checkFromToIndex 和 checkIndex 方法用于检查列表和数组中的索引。
灵活性较差,主要用于集合。
**
- 非公共方法中的参数检查:** 对于非导出方法,使用断言来检查参数:
assert x > 0 : "Valor de x deve ser positivo";
- 特殊情况:
构建者应始终检查存储参数的有效性以供以后使用。
对于成本高昂的检查可以例外,其中检查在计算过程中是隐式的。
- 隐式验证示例:
Collections.sort(List) 假设对象是相互比较的。验证发生在排序过程中。
- 异常翻译:
当隐式检查抛出错误的异常时,使用“异常翻译”来抛出正确的异常。
- 限制的灵活性:
方法应设计得尽可能通用,并施加尽可能少的限制。
- 结论:
记录并实施对方法和构造函数的参数有效性检查。练习对于避免未来的错误和促进调试至关重要。
以上是项目 检查参数有效性的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

Atom编辑器mac版下载
最流行的的开源编辑器

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)