在使用List和Map等集合时,我们经常会使用增强for来进行遍历。但是这里面会存在一些问题。比如当你进行数据库查询是,得到的返回结果是List集合时,如果没有查询到符合要求的数据时List集合时null,并不是有对象而size为0的集合,这个时候就要对返回的结果进行空指针判断,不为null的时候才能遍历,否则回报空指针异常。

List<String> list = null;
for (String str : list) {//会报空指针异常
System.out.println(str);
} List<String> list = new ArrayList();//正常运行
for (String str : list) {
System.out.println(str);
}
  1. 增强型for循环不支持遍历时修改
  2. list为null时会报空指针异常;list为长度为0的空集合却不会。所以每次使用for循环的时候要注意空值的判断
  3. 使用增强型for循环时,对遍历的集合需要做null判断,不然可能引发空指针异常。

Java中是使用增强for的null问题的更多相关文章

  1. (转)Java 中关于String的空对象(null) ,空值(empty),空格

    原文出处:Java 中关于String的空对象(null) ,空值(empty),空格 定义 空对象: String s = null; 空对象是指定义一个对象s,但是没有给该对象分配空间,即没有实例 ...

  2. java中List<Map<String, Object>>关于null的判断

    List<Map<String, Object>> selectTmFileInfo = fileInfoService.selectTmFileInfoByToken(cTo ...

  3. Java中增强一个类的几种方法

    今天有人问我怎么增强一个类的功能.博客刚好没东西,今天就讲讲增强类. 增强的手段有三种类型: 1.继承或者实现接口:特点是被增强对象不能变,增强的内容不能变. 2.装饰着模式:特点是被增强对象可变,但 ...

  4. java中null 关键字

    Java中,null是一个关键字,用来标识一个不确定的对象.null常见意义:一.null是代表不确定的对象  Java中,null是一个关键字,用来标识一个不确定的对象.因此可以将null赋给引用类 ...

  5. Java中有关Null的9件事

    对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常 (NPE)的骚扰.连Java的发明者都承认这是他的一项巨大失误.Java为什么要保留null呢?null出现有一段时间了,并且我 ...

  6. 关于Java中null的十点详解

    对于每一个Java程序员来说,null肯定是一个让人头痛的东西,连Java的发明者都承认这是一项巨大的设计失误,今天就来总结一下Java中关于null的知识. 1.null不属于任何类型,可以被转换成 ...

  7. java中的null和""区别

    (1)问题一:null和""的区别String s=null;string.trim()就会抛出为空的exception String s=""; string ...

  8. 转!!Java中关于Null的9个解释(Java Null详解)

    对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常(NPE)的骚扰.连Java的发明者都承认这是他的一项巨大失误.Java为什么要保留null呢?null出现有一段时间了,并且我认 ...

  9. JAVA中String = null 与 String = "" 的区别

    JAVA中String = null 与 String = ""的区别 笔者今天在Debug的时候发现的NPE(NullPointerException),辛辛苦苦地调试了半天,终 ...

随机推荐

  1. cronicle docker 运行试用

    Cronicle 是一款基于nodejs 开发的分布式任务调度工具,包含了比较全的UI,使用也比较简单,为了 方便学习,简单制作了一个docker 镜像,方便使用 Dockerfile   FROM ...

  2. Linux执行shell脚本的方法

    Linux下有个脚本/home/start.sh,常用的两种执行方法如下: 1../start.sh.注意此时start.sh脚本文件必须有可执行权限-x.类似的有以绝对路径来执行:/home/sta ...

  3. 分享一个Centos8的国内yum源

    使用的是清华大学开源镜像站,文件地址: https://github.com/hackyoMa/docker-centos/blob/8/CentOS-Base.repo 使用方法: cd /etc/ ...

  4. 洛谷P3834题解

    若想要深入学习主席树,传送门. Description: 给定数列 \(\{a_n\}\) ,求闭区间 \([l,r]\) 的第 \(k\) 小的数. Method: 先对数据进行离散化,然后按照权值 ...

  5. js对象属性名以数字开头如何获取、js属性名以数字开头、missing ) after argument list

    js对象中属性名以数字开头引发的报错 :missing ) after argument list var ChineseDistricts = { : { : '北京市', : '天津市', : ' ...

  6. The Snowflake Elastic Data Warehouse

    开篇说的是,Shared-nothing当前已经是主流的架构,需要用自身的local disks来存储数据,Tables被水平划分到各个partitions上 这种架构,比较适合star-schema ...

  7. RSA加密和数字签名在Java中常见应用【原创】

    相关术语解释: RSA,参考: https://en.wikipedia.org/wiki/RSA_(cryptosystem) 非对称加密算法 ,参考:https://baike.baidu.com ...

  8. ubuntu16 安装 qBittorrent ( Linux下BT下载图形工具 )

    qBittorrent 是QT编写的一款BT下载软件,支持FreeBSD, Linux, macOS, OS/2, Windows: 官网:https://www.qbittorrent.org/ 在 ...

  9. 查看ssh有没有被黑的IP

    #grep "Failed password " /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr ...

  10. SpringBoot项目中的全局异常处理器 Failed to invoke @ExceptionHandler method

    文件下载代码 @RequestMapping(value = { "/data/docking/picture/{id}/{empi}" }) public JsonApi pic ...