Spring中Assert断言类的使用和箭头函数的学习

今天看到同时写的代码,感觉好简洁,好美观,反观自己的,一言难尽。所以发愤图强,学习一下这种方式。
同事的代码
背景:若依框架搭建的项目
学习目标:学会使用使用lambda表达式的箭头和使用断言类替代if代码块判断

lambda(箭头函数)的学习

这里仅仅是对“->”的学习使用,后续会再补充。
箭头函数应用在:只有一个方法的接口中,用来简化匿名函数的一种方式

// Java 8之前:
new Thread(new Runnable() {
    @Override
    public void run() {
    System.out.println("Before Java8, too much code for too little to do");
    }
}).start();

//Java 8方式:
new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start();

省略了“接口名称”、“方法定义”,主要是因为接口中只有一个方法,所以可以省略。

Assert断言类的使用,结合箭头函数

方法说明:
Assert的API链接

  1. notNull(T object, Supplier<X> errorSupplier)
    断言对象是否不为null ,如果为null 抛出指定类型异常 并使用指定的函数获取错误信息返回。
  2. isNull(Object object, Supplier<X> errorSupplier)
    断言对象是否为null ,如果不为null 抛出指定类型异常 并使用指定的函数获取错误信息返回
  3. isTrue(boolean expression, Supplier<? extends X> supplier)
    断言是否为真,如果为 false 抛出给定的异常
  4. noNullElements(T[] array, Supplier<X> errorSupplier)
    断言给定数组是否不包含null元素,如果数组为空或 null将被认为不包含 并使用指定的函数获取错误信息返回。
  5. notBlank(T text, Supplier<X> errorMsgSupplier)
    检查给定字符串是否为空白(null、空串或只包含空白符),为空抛出自定义异常。 并使用指定的函数获取错误信息返回
  6. notContain(CharSequence textToSearch, T substring, Supplier<X> errorSupplier)
    断言给定字符串是否不被另一个字符串包含(即是否为子串) 并使用指定的函数获取错误信息返回
  7. notEmpty(T, Supplier<X> errorSupplier)
    T:{数组,集合,字符串,Map}
    断言给定数组是否包含元素,数组必须不为 null 且至少包含一个元素 并使用指定的函数获取错误信息返回

若依框架中的使用示例

若依框架中,在service层进行断言类判断,异常使用若依自定义的ServiceException异常类

原始方式(使用匿名内部类)
Assert.notEquals("1", "2", new Supplier<Throwable>() {
            @Override
            public Throwable get() {
                return new ServiceException("两个相等");
            }
        });
使用箭头函数简化
Assert.notEquals("1", "1", ()->new ServiceException("两个相等"));

出现问题会在控制台报错,并返回给前端页面自定义报错信息。

总结

使用断言类可以简化service层的if判断和controller层的返回结果,简化掉if判断的代码块部分,让代码看的更简洁美观

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Pythonassert断言用于在代码检查某个条件是否为True,如果不是,则会抛出AssertionError异常。它的语法如下: assert expression [, arguments] 其,expression是需要检查的条件,如果为False,则会抛出异常。arguments是可的,用于在异常信息提供更多的信息。 assert断言通常用于在开发和调试过程,帮助程序员快速发现代码的错误。它可以用于检查函数的输入和输出是否符合预期,以及检查程序的逻辑是否正确。但是,在生产环境assert断言应该被禁用,因为它可能会导致程序崩溃。 ### 回答2: assert断言是Python的一种工具,用来确认特定的一个条件是True,如果不是True则会抛出AssertionError异常,使得程序停止运行。 在Pythonassert断言常常用于进行程序的调试和检测。通常的用法是在代码插入一些assert代码,用于检查程序的正确性。如果assert语句检查到错误,那么程序就会崩溃,并打印出错误信息。 assert语句的语法结构如下: assert expression [, arguments] 其expression为需要检查的条件表达式,如果为False则会抛出AssertionError异常。arguments是可选的,用于指定异常的描述信息。 assert语句一般放在函数或方法,用于对输入参数或函数处理结果的检查,以确保程序的正确性。例如: def divide(a, b): assert b != 0, "除数不能为0" return a / b print(divide(10, 0)) 上面的代码assert语句用于确保函数的除数不为0,如果除数为0则会抛出异常。通过使用assert语句,我们可以在程序开发和调试,快速定位并解决问题,提高代码的可靠性和健壮性。 在Pythonassert语句的使用应遵循以下几点原则: 1. 不应该使用assert语句来检查用户的输入,因为可能会导致安全漏洞。 2. 应该将assert语句用于检查预期的程序状态,例如函数参数和返回结果等。 3. 应该遵循“少用assert,多用单元测试”的原则,通过编写单元测试用例来确保程序的正确性和健壮性。 4. 应该使用合适的异常处理机制来处理assert语句可能抛出的异常,以防止程序崩溃。 ### 回答3: Pythonassert是一种用于判断程序逻辑是否正确的语言结构。当assert后面跟的表达式为假(即False或0)时,程序就会停止运行,同时抛出一个AssertionError的异常,从而提醒程序员在代码存在问题。 使用assert可以方便地对程序进行调试和检查错误,特别是在开发过程assert可以帮助开发人员尽早地发现问题并加以修正。例如,在对输入的参数进行校验时,assert可以用于判断参数是否符合预期的格式和范围,若不符合则收到错误信息。 assert的语法结构为:assert expression, message,其expression为要进行判断的表达式,message为断言失败时要输出的信息。message是可选的,如果省略,则输出默认的信息“AssertionError”。 assert可以与try和except语句联合使用,来处理断言失败时引起的异常。在try块使用assert,若断言失败,则会抛出AssertionError异常,进入except块进行处理。这样可以保证程序不会因为一个小问题而崩溃,也可以在程序加入更多的容错性。 总而言之,assert是Python一种非常有用的调试工具,它可以帮助开发人员快速定位程序的缺陷,从而更加高效地进行开发和维护。在编写代码时,我们可以充分利用assert这个工具,但也需要注意精度和安全性,避免过多使用assert导致程序出现问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值