首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java - foreach循环报NPE空指针异常

前言 最近debug时忽然发现,如果一个集合赋值为null,那么对该集合进行foreach循环(也叫增强for循环)时,会报NPE(即空指针异常NullPointerException)。...java.lang.NullPointerException at com.lewis.test.TestLewis.main(TestLewis.java:42) 一时间很惊奇,因为在我印象中,foreach...循环在遇到null的集合时,应该是会自动跳过去不进行遍历的才对。...foreach循环只会自动跳过遍历空的集合,如果对于null值的集合,就会直接报NPE。...另外补充下,foreach循环内部是使用的迭代器来遍历,也就是说,这种遍历方式和使用迭代器来遍历是一样的。 警告 本文最后更新于 October 14, 2018,文中内容可能已过时,请谨慎使用。

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

IC入职新同学必备技能手册 - Perl (1)

# example my @arr = (a, b, c); # 定义数组,字符可以忽略引号 print $_, "\n" foreach @arr; # 这里$_ foreach循环中的当前元素...Perl的子函数,没有C那样的参数列表, # 想传什么就传什么 # 具体例子在函数套路中讲解 die / unless die # 其实就是强制异常退出 # 比如 die ("Error happened...next/last : 用于循环中,顾名思义,next强制跳过当前循环,进入下一个。last表示,强制结束本次循环,跳出循环block(不管循环还有多少次结束) chomp : 非常常用!...} else { # 嗯,else还是和其他语言类似的 } foreach循环 # foreach循环其实有两种套路 # 普通的 my @arr = (a , b , c); foreach my...} === # foreach循环最常用的是搭配哈希, # 为啥,因为IC环境里面,hash存储着大量的config数据, # 需要拿出来各种操作 my $my_hash = { 'ga100

87410

Perl语言程序应用(资料汇总版)

循环foreach循环是等价的,当控制条件只为一个列表时,for循环实际上就是foreach循环,也即关键字foreach可以直接写成for。...\n"; } while循环中钻石操作符按行读取参数文件并将内容存入$_,foreach循环中将外层中$_内容按空格进行拆分成列表并将每一部分依次存入内层$_,内层循环中的标量变量和哈希其初始值均为undef...next操作符当匹配到非单词内容(非字母、数字、下划线)则回内层循环初始并进入下一个循环,运行如下所示: ②模块标签 Perl允许对模块添加自定义标签来实现更好的结构控制,模块标签一般为大写字母,放在模块最前面...例如我们在CPAN检索PerlIO大类下的拓展模块gzip,结果如下所示: 进入PerlIO::gzip的主页,即可看到这个拓展模块的详细介绍——为Perl添加一个针对gzip压缩文件输入输出的数据层...home/tengwenkai/perl5/lib 不过一般不建议这么做,除非默认安装路径(可以使用perl-V查看,在@INC数组中)没有写入权限,否则在模块使用时就得添加完整的路径或者修改默认搜索路径

3.6K30

Perl语言入门系列之二

\n"; } 上述语句也可以写成: log =name gt 'fred'; if($log) {…} ⑶while控制结构 while是Perl中的一种循环结构,和其他语言类似,其含义为只要条件为真,...可以在命令行输入命令“perl -v”来查看当前版本,运行结果如下所示: ⑷foreach控制结构 foreachPerl对数组或列表进行处理的一种循环结构,其含义是从列表或数组中逐项取值赋值给控制变量...\n"; } 运行结果如下所示: 实际上,控制变量就是动态的列表或者数组,对控制变量的操作会改变列表或数组元素,这也是foreach的强大之处,而当循环结束之后,控制变量会被自动还原为循环之前的值,如果之前没有赋值.../usr/bin/perl-w 或者也可以在命令行运行脚本时添加-w参数: 尽管Perl会给出警告,但是程序不会因此被打断,仍会运行并给出我们不想要的结果。..."@keys\n"; 结果如下所示: 使用Perl的哈希函数可以根据需要自己设置甚至添加环境变量,但是需要注意的是,%ENV的数据初始值与Bash环境变量是一样的,在Perl中修改的环境变量不会修改Linux

1.2K30

Perl语言入门》——读书笔记

在列表上下文中,会返回一个列表: @line = ; while与foreach的区别:在while循环里,Perl会读取一行输入,把他存入某个变量并执行循环的主体,接下来它会回头去寻找其他的输入行...但是在foreach循环里,行输入操作符会在列表上下文中执行(因为foreach需要逐项处理列表内容,因此会一次性读取所有输入) 钻石操作符 在不指定文件句柄的时候,默认检查@ARGV: while...{$j > $i)} { $j *= 2; } 裸块控制结构 受循环控制符控制 可以限定临时词法标量的作用域 自增域自减:++ — for foreach域for的关系 如果连有两个分号,它就是...for循环,如果没有分号,说明它是一个foreach循环 # is a foreach for (1..10) { print "I can cut to $_!...for, foreach, while, until及裸块 redo LABEL:将控制返回到当前循环体的顶端,而不经过任何测试条件,也不会进入下一次循环 continue:在when中使用

2.5K20

perl语言十分钟入门【零基础可入】

am); @none = (); @huge = (1..5); @stuff = (@list, @none, @huge); pop和push操作符: (1)pop弹出列表末端元素; (2)push列表末端压入元素...; shift和unshift操作符: (1)shift移出列表首部元素; (2)unshift列表首部压入元素; 列表的输出: (1)列表输出,只输出列表,元素间不含空格; (2)列表的字符串化输出...,输出列表,元素间加入空格; (3)foreach控制结果,可以依次取得列表中各个元素 #!...{ $a = 1; … } # $a失效了 (5)last控制结构 相当于c中的break,立刻终止循环; (6)next控制结构 相当于c中的continue,立刻开始下一次循环; (7)redo控制结构...…独有的,重新开始本次循环; while(1) { # 跳到这里 print (“hello”); redo; } 9.高级特性 神奇的Perl还有正则、module、文件、字符串、智能匹配、进程管理

2.1K71

十分钟学perl够用(客服MM都懂了)

am); @none = (); @huge = (1..5); @stuff = (@list, @none, @huge); pop和push操作符: (1)pop弹出列表末端元素; (2)push列表末端压入元素...; shift和unshift操作符: (1)shift移出列表首部元素; (2)unshift列表首部压入元素; 列表的输出: (1)列表输出,只输出列表,元素间不含空格; (2)列表的字符串化输出...,输出列表,元素间加入空格; (3)foreach控制结果,可以依次取得列表中各个元素 #!...{ $a = 1; … } # $a失效了 (5)last控制结构 相当于c中的break,立刻终止循环; (6)next控制结构 相当于c中的continue,立刻开始下一次循环; (7)redo控制结构...…独有的,重新开始本次循环; while(1) { # 跳到这里 print (“hello”); redo; } 9.高级特性 神奇的Perl还有正则、module、文件、字符串、智能匹配、进程管理

1.2K70

BeginnersBook Perl 教程

目录 在 Windows,Mac,Linux 和 Unix 上安装 Perl 第一个 Perl 计划 Perl 语法 Perl 中的数据类型 Perl 变量 my关键字 - Perl 中的本地和全局变量...Perl 中的标量 Perl 中的use strict和use warnings Perl - 列表和数组 Perl 中的哈希 Perl 运算符 - 完整指南 Perl 中的条件语句 Perl 中的...if语句 Perl 中的if-else语句 perl 中的if-elsif-else语句 Perl 中的unless语句 Perl 中的unless-else语句 Perl 中的unless-elsif...语句 Perl 中的Switch Case Perl 中的given-when-default语句 Perl 中的循环循环控制语句 Perl 中的for循环 Perl while循环 Perl -...do-while循环 Perl - foreach循环 Perl 中的until循环 Perl 中的子程序 Perl - 字符串 Perl 字符串转义序列 另见 C 语言教程 C 语言示例 C++ 教程

1.2K20

shell、perl和python的简单

--while】 Shell{break跳出循环,continue跳出本次循环}:          While[条件表达式]          do 命令行          done perl{...last退出循环,next终止本次循环,适用perl所有循环}:          while(条件表达式){ 语句块;          } 或者         {语句块}while(判别表达式)...         Done perl:          for(初始表达式;条件表达式;循环过程运算式)          { 语句块;          }          for 标量(数组变量...         { 语句块;          }          for  (数组变量)          { 读取$_,处理数组相关的语句块;          }          foreach...  标量(数组变量)          { 语句块;          }          foreach   (数组变量)          { 读取$_,处理数组相关的语句块;

83330

JMeter详细使用手册

控制器 ForEach控制器在用户自定义变量中读取一系列相关的变量。...6.3 仅一次控制器 用途:当一个循环逻辑里的有个业务只需要运行一次时,这个业务可以定义到仅一次控制器里;例如环境初始化 6.4 循环控制器 用途:当需要循环执行一组sample,例如需要针对一个接口测试一组数据...取样器sample 用途:服务器发出的请求包参数及值; 8....在此简单地大家介绍一下常用的正则表达式的基础: .:匹配任何单个字符。例如Perl正则表达式r.t匹配这些字符串:rat、rut、rt,但是不匹配root :匹配行结束符。...3) 查看运行结果 鼠标右键点击线程组,在弹出的菜单中选择添加->监听器->用表格查询结果,如下图: 3.

3.6K10

错误处理在网络爬虫开发中的重要性:Perl示例 引言

错误处理的必要性在网络爬虫的开发过程中,可能会遇到多种错误,包括但不限于:●网络连接问题●服务器错误(如404或500错误)●目标网站结构变化●超时问题●权限问题错误处理机制可以确保在遇到这些问题时,爬虫能够优雅地处理异常情况...Perl网络爬虫开发Perl是一种强大的文本处理语言,非常适合用于编写网络爬虫。以下是使用Perl进行网络爬虫开发的基本步骤:1....使用异常处理来捕获并处理这些错误。eval { # 解析HTML的代码};if ($@) { warn "解析HTML时发生错误:$@";}6. 输出结果将提取的数据输出或保存到文件。...foreach my $img (@images) { print "图片链接:$img\n";}结论错误处理是网络爬虫开发中不可或缺的一部分。...Perl语言提供了丰富的模块和错误处理工具,使得开发高效且健壮的网络爬虫成为可能。代码示例以下是完整的Perl网络爬虫示例,包括错误处理:#!

9610
领券