搜索

在Java中,断言是确保或测试程序中所做假设的正确性的语句。这是在断言语句的帮助下完成的。当书面假设被执行时,它被认为是正确的。如果为 false,Java 虚拟机将抛出断言错误。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

使用断言的主要原因是:

  • 确认无法访问的代码是否可达。
  • 检查评论中的假设是否正确。
  • 确认一下,开关中的默认情况没有达到。
  • 调用方法后。
  • 检查对象的状态。

语法

下面是 Java 断言语句的语法。

assert expression;
assert expr1 : expr2;

可以根据需要使用任何语法。

Java 中断言是如何工作的?

前面已经提到,assert 可以写成两种形式。

  • 语法断言表达式;用于测试布尔形式的表达式。如果特定表达式为 false,程序将通过抛出 AssertionError 来终止。与正常异常不同,这些错误在运行时被禁用。
  • 但是,语法断言 expr1: expr2;它用于程序有一些额外信息可以帮助诊断某些故障的情况。
  • 与 Java 中未捕获的异常类似,断言错误通常在堆栈跟踪中与文件以及引发异常的行号一起标记。

尽管这些是断言的主要优点,但在某些情况下不应使用断言。他们是:

  • 错误消息替换。
  • 公共方法中的参数检查
  • 命令行参数。
注意:在编译代码之前,请确保断言已启用。

语法

java –ea programname

或者

java –enable assertions programname

使用 Eclipse Java 断言的步骤

在 Eclipse 中,可以使用以下步骤完成。

第 1 步: 选择运行配置。

Java断言

第 2 步:转到左侧面板并选择 Java 应用程序,然后右键单击它。

Java断言

第 3 步:选择新配置并在 VM 参数上键入 –ea。完成后,单击。

Java断言

类似地,可以使用下面给出的语法禁用断言。 Java –da 程序名

实现 Java 断言的示例

现在,让我们看一些断言的示例程序,以便清楚地了解它。

示例#1

检查特定值是否大于 20 的 Java 程序。

代码:

class AssertionExample{
public static void main( String args[] ){
int val = 14;
assert val>=20:" Value is not valid";
System.out.println("The given value is: "+ val);
}
}

输出:

  • 执行代码时,会显示消息“给定值为 14”。

Java断言

  • 可以清楚地看到这里没有检查断言,因为值大于20就不检查。
  • 为了启用断言,必须在编译前设置-ea。为此,请执行注意中提到的步骤。
  • 如果再次尝试运行代码,可以清楚地看到抛出了 AssertionError,因为值小于 20。

Java断言

示例#2

检查特定用户输入值是否大于 20 的 Java 程序。

代码:

import java.util.Scanner;
class AssertionExample{
public static void main( String args[] ){
Scanner <u>sc</u> = new Scanner( System.in );
System.out.print("Enter a number to check assertion ");
//store the input value to the variable <u>val</u>
int val = sc.nextInt();
//assertion check whether the input value is greater than 20
assert val>=20:" Value is not valid";
System.out.println("The given value is: "+ val);
}
}

输出:

  • 执行代码时将要求用户输入一个数字。在下面的结果中,数字 13 作为输入给出。由于小于 20,因此抛出了断言错误。

Java断言

  • 同时,当给出的值大于 20 时,不会抛出错误,并且会显示消息。

Java断言

示例#3

Java 程序,用于检查一周中有多少天。

代码:

class AssertionExample {
//main method
public static void main(String args[]) {
//declare a string days
String[] days = {" Monday " , " Holiday " , " Saturday " , " Tuesday " , " Wednesday " , " Sunday " , " Thursday " , " Friday " };
//set the assertion as 7
assert days.length==7 : "7 days are present in a week, Your input is wrong";
//print the line below
System.out.println("There are " + days.length + "  days in a week");
}
}

输出:

  • 执行代码时,会抛出断言错误,因为一周的天数为 7,而给出的字符串输入包含更多内容。

Java断言

  • 让我们从输入值中删除 Holiday,看看输出是什么。

Java断言

是的。当断言值满足输入值时,将打印该行。

在 Java 中使用断言的优点

以下是使用断言的主要优点。

  • 有效检测和纠正错误。
  • 样板代码将被删除,并有助于创建可读的代码。
  • 执行时间不会受到影响,因为它会在运行时自动删除。
  • 快速错误检测和纠正。
  • 代码优化和重构是为了正确运行而进行的。

除了上述几点之外,以下是学习断言时必须了解的要点。

  • Java 中的断言是在 JDK 1.4 版本中引入的
  • Assert 是用于实现断言的关键字。
  • 可以在运行时借助相应语法来启用和禁用断言。
  • 尽管断言补充了异常,但它并不能取代异常。
  • 即使有助于条件验证,它也不会取代单元测试。
  • 切勿使用断言来验证公共方法的参数或参数。

结论

Java 断言是检查特定条件的真实性的语句。它通常用于软件开发过程中的测试。此外,它们与某些布尔表达式一起使用。本文从断言的语法、工作原理、优缺点、实例等几个方面进行了详细的讲解。

以上是Java断言的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?Mar 17, 2025 pm 05:46 PM

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

如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)?如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)?Mar 17, 2025 pm 05:45 PM

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

如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?Mar 17, 2025 pm 05:44 PM

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

如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?Mar 17, 2025 pm 05:43 PM

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

Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Mar 17, 2025 pm 05:35 PM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

禅工作室 13.0.1

禅工作室 13.0.1

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

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。