网站首页 > java教程 正文
然后下来看这个断言,set断言指令。看这个案例,看一下这个方法,计算平方的方法。这个方法有一个入参,有个number,要求是数据必须得是正数。这块怎么做?用的是number的指令,有没有人在项目用过?这个指令有没有人用过?谢谢。有没有用过?就是在什么情况下需要用断言?可能大家用的比较少。
这个for的段,先说下它的语法,是for的指令,然后是条件,条件就是断言这个东西什么情况是正确的,就是number大于等于零是要求的,当然它是正确的。如果不正确,注意这是一个冒号,后面是一个message,相当于是一个错误信息。
注意这个东西如果number是一个负三,它会抛出一个异常,运行一下这个案例。这个案例是,再说一下什么情况会用断言。这个案例先是一个整数五,掉这个方法是正常正确的。如果这是个负三,运行的时候就应该抛出一个异常,抛出一个断言的异常叫assirt,安若,叫sirsir。
运行一下看看,让大家看看一下,这个是罐五的平方是二十五,负三的平方是九,这个并没有抛异常。这个什么原因?为什么没有抛异常?断言没起作用。小度,关机。断言为什么没起作用?有谁能说一下?大家注意断言这块没起作用是因为这个,就是一个断言。
大家注意它需要启动jvm里面一个参数,jvm默认断言是关闭的,如果要启用断言就需要打开它一个开关,就ea,ea,在这,要加参数,在这加,这有一个vmop十二字,然后是杠一a,运行一下,打开,五的平方是二十五,下面就报的是一个断言的错误,结束了一个负的数据。
这就是说明断言的指令起作用了,就意味着要想让断言生效,jvm里面必须得加参数,这样看起来是不是很复杂?很复杂。下来要知道的就是什么时候没用断言比较合适,这个大家注意,什么时候用断言,这个是大家注意的,就是对于未被导出的方法应该优先使用断言。
未被导出的意思就是非公开的,不是apr里面提供的,apr里面的代码一般都是接口都是对外的。如果是你的项目里面,本来一个方法很大几百行,要给它拆一下,把这个拆成都拆成小方法,拆出来方法之后,相互之间这方法之间是不是也得传参数?这种就相当于自己的方法,自己用。这种情况下如果按照传统的正常做数据交易的方法来做,各种a服语句判断什么的,power异常或者是返回错误码这一类的,就有点像间接的增加了工作量。
对于系统内部的错误,这个方法本来就是给自己用的,然后在自己相互之间传猜还存在一种不信任的状态,这个就可能就不是特别合适。用断言来做就相对来说比较好,用断言做就是在生产环境里面这些代码就全都失效了,不就是不起作用,那样是不会影响性能的。
而在生产环境这些方法是不可能给外部调用的,只是这都是自己在调,所以不会出现参数不一致的情况。这就是断言使用的一种情况,特别是做能多层开发,多层开发有时候不同的层次在同一个项目里面,方法本身编出来就是给自己用的,用断言做反而有优势。
猜你喜欢
- 2024-11-05 Java 进阶之异常处理(java中异常处理)
- 2024-11-05 为什么Java中的const关键字没有实现?
- 2024-11-05 Spring Boot 内置工具类(springboot 工具类调用service)
- 2024-11-05 深入理解Java:注解(Annotation)基本概念(3-1)
- 2024-11-05 Spring Boot集成validation用于优雅的校验API参数的合法性
- 2024-11-05 java初学者,如何学习java?(java该怎么学)
- 2024-11-05 Nacos网关gateway的断言,自定义断言,过滤器使用
- 2024-11-05 恕我直言,在座的各位根本不会写 Java!
- 2024-11-05 JAVA 命令之标准选项(java怎么选择)
- 2024-11-05 Java锁与线程的那些“不可描述”的事儿
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)