方法#3:arg.getClass();是聪明的,但除非这个成语看到广泛的采用,我宁愿更清晰,更冗长的方法,而不是保存几个字符。我是一个“写一次,读很多”的程序员。

其他方法是自我记录的:您可以使用一条日志消息来澄清发生了什么 – 此日志消息在阅读代码时也在运行时使用。 arg.getClass(),因为它不是自我记录。您至少可以使用评论o澄清代码的审阅者:

arg.getClass(); // null check

但是,您仍然无法在运行时放置特定的消息,就像您可以使用其他方法一样。

方法#1 vs#2(null-check NPE / IAE vs assert):我尝试遵循以下准则:

>使用assert检查私有方法的参数

断言参数> 0;

>使用null检查IllegalArgumentException来检查公共方法的参数

if(param == null)throw new IllegalArgumentException(“param can not be null”);

>在需要的时候使用null检查NullPointerException

if(getChild()== null)throw new NullPointerException(“node must have children”);

然而,由于这个问题可能是最有效地捕捉潜在的零问题,所以我必须提到我处理null的首选方法是使用静态分析,例如类型注释(例如@NonNull)一个JSR-305。我最喜欢的检查工具是:

如果我的项目(例如,不是具有公共API的库),并且如果我可以使用Che

java 空指针检查_Java:如何有效地检查空指针相关推荐

  1. java编译器代码检查_java 命名代码检查-注解处理器

    命名代码检查 根据 中第6.8节的要求, Java 程序命名应当符合下列格式的书写规范: 类 ( 或接口 ) : 符合驼式命名法, 首字母大写. 方法 : 符合驼式命名法,首字母小写 字段 :类或实例 ...

  2. java set子集_Java程序来检查一个集合是否是另一个集合的子集

    Java程序来检查一个集合是否是另一个集合的子集 在这个实例中,我们将学习Java中检查一个集合是否是另一个集合的子集. 要理解此示例,您应该了解以下Java编程主题: 示例1:使用HashSet类检 ...

  3. java显示菜单栏_Java:如何检查JFrame的菜单栏是显示在系统菜单栏还是框架本身?...

    (From Swing)中的JFrame允许您设置菜单栏(使用JFrame.setMenuBar(mb)的MenuBar实例;).此菜单栏可以显示在不同的位置,具体取决于其运行的系统.如果运行应用程序 ...

  4. java的未检查异常有哪些_Java:检查异常与未检查异常

    一.异常的介绍 Throwable 是 Java 中所有错误和异常的超类.Java 虚拟机仅抛出属于此类(或其子类之一)的实例对象,或者是 throw 语句也可以抛出该对象.同样,catch 子句中的 ...

  5. java 类型检查_Java开发笔记(五十二)对象的类型检查

    前面介绍了类的多态性,来自于鸡类的实例chicken,既能用来表达公鸡实例,也能用来表达母鸡实例.可是这导致了一个问题,假如在call方法内部需要手工判断输入参数属于公鸡实例还是母鸡实例,那该如何是好 ...

  6. java 类型检查_Java开发对象类型检查详细解析

    原标题:Java开发对象类型检查详细解析 前面介绍了类的多态性,来自于鸡类的实例chicken,既能用来表达公鸡实例,也能用来表达母鸡实例.可是这导致了一个问题,假如在call方法内部需要手工判断输入 ...

  7. java异常——异常分类+声明已检查异常+如何抛出异常+自定义异常类

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java异常--异常分类+声明已检查异常+如何抛出异常+自定义异常类 的相关知识: 0.2)异 ...

  8. java中的可检查和不检查_检查Java测试中发生了什么

    java中的可检查和不检查 有人想到了在Java单元测试中使用try和catch块的想法: @Test public void test() { try { callSomeCode(); } cat ...

  9. Java检查异常、非检查异常、运行时异常、非运行时异常的区别

    Java检查异常.非检查异常.运行时异常.非运行时异常的区别 参考文章: (1)Java检查异常.非检查异常.运行时异常.非运行时异常的区别 (2)https://www.cnblogs.com/ou ...

  10. java assert可以检查exception吗_检查胃病一定要做胃镜吗?这五种检查也可以筛查胃病疾病...

    胃肠镜检查是很多人打内心拒绝的.很多做过的人表示检查10分钟像是过一个世纪那么漫长. 确实,胃镜真的很不舒服.做之前紧张管子进去痛得掉眼泪,做完检查后痛不在肠道里变成嗓子痛了,真是太难受了. 检查胃部 ...

最新文章

  1. Memcached 缓存系统的-介绍、安装以及应用
  2. 标准化是RFID发展的必由之路
  3. linux 查找目录或文件详解
  4. 人脸识别三大经典算法_人脸识别系列四 | DeepID1算法
  5. python requests库api_Python+requests库发送接口入参为xml格式的接口请求
  6. Abp商业版 - Identity Server模块
  7. 【转载】JSON介绍
  8. 多线程之旅七——GUI线程模型,消息的投递(post)与处理
  9. mybatis批量删除提示类型错误
  10. TreeMap按key排序
  11. 移动互联网终端 淘宝客如何实现盈利
  12. 三大微分中值定理及泰勒中值定理证明
  13. 2020计算机考研英语国家线,2020考研英语国家分数线?
  14. Line推出新语音群聊功能 最多支持200人
  15. 基于 Qt5 ( C++ ) 开发的一个小巧精美的本地音乐播放器
  16. 对接支付宝单笔转账接口
  17. [架构之路-177]-《软考-系统分析师》-17-嵌入式系统分析与设计 -2- 系统分析与设计、低功耗设计
  18. margin-top不起作用???
  19. 为什么你学了那么多,却没赚到钱?
  20. topm java cpu3.3_快讯:TOPM 3-0 XQ,TOPM强势压迫,势如破竹喜获三连胜

热门文章

  1. 【专业知识问答】问:引起氢气爆炸的条件是什么?氢冷发电机在什么情况下易引起爆炸?
  2. ecology9.0 主表浏览框控制明细表必填,只读并赋值与清空
  3. 推荐云服务器,阿里云是续费更好还是直接换新的?
  4. 北京城市更新专项规划正式印发,绿色、低碳成重点
  5. 转计算机专业考试题库,银保监会考试题库:计算机类模拟试题练习(七)
  6. 完美编译暗黑世界1.4的win32版本(支持线程和联网模块)
  7. webpack打包上传到服务器(小白)
  8. jquery实现简单计算器功能(仿苹果计算器)
  9. 电子科技大学成都学院 计算机考试,2018年电子科技大学成都学院高职单招考试数学真题及答案...
  10. 心灵乌鸡汤---motto