Arraylist为什么抛异常呢

问题描述

public class Test { static ArrayList<String> list = null; static void read(ArrayList<String> list) { if(list == null) { list = new ArrayList<String>(); } //String s =new String("hello"); list.add("hello"); System.out.println(list.size()); } public static void main(String[] args) { read(list); System.out.println(list.size()); } }很简单的代码,为什么会抛异常呢?

解决方案

因为,你在main方法里面打印的list是全局,而你在read方法里面给list添加值hello,这个list是你在方法里面new的局部变量,而不是全局的。所以会因为全局list没有值而报空指针的错误。
解决方案二:
引用是null;经过传参,new之后没有改变原来的引用,原来的引用还是null传参相当于中间赋值一次传递一个List引用,List list1 传参过程 List list2 = list1;如果传递的是null 那么方法中再给参数new,相当于 list2 = new ..而本身传递的 list1 没有变化如果传递的不是null;那么对list2操作,会影响到list1,因为它们指向同一个对象

时间: 2024-10-24 17:46:42

Arraylist为什么抛异常呢的相关文章

struts1-求助Struts1.x标签问题,bean:write抛异常

问题描述 求助Struts1.x标签问题,bean:write抛异常 如题,(项目环境Struts 1.2)...今天做功能时,遇到了一个问题,bean:write标签抛异常.我把没用的代码全去掉了,代码如下 后台action的 public ActionForward recharge(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws G

[freemarker]使用freemarker生成父子关系树抛异常

问题描述 需要生成一个菜单树,使用了freemarker,由于采用了tiles2,在和freemarker整合的时候出现了问题,所以直接使用freemarker 2.3.15将模板通过template.process方法产生html code显示到前端,主要代码如下://产生freemarker configpackage project.util.freemarker;import freemarker.cache.ClassTemplateLoader;import freemarker.t

mp4parser音视频合成抛异常Expected Start Word 0x7ff

问题描述 mp4parser音视频合成抛异常Expected Start Word 0x7ff 我用mp4parser合成音视频的时候,总是抛这个异常,换成AACTrackImpl也是这个问题,请问这个怎么解决? mp3文件跟AAC文件都是可以正常播放的 java.io.IOException: Expected Start Word 0x7ff at com.googlecode.mp4parser.authoring.tracks.MP3TrackImpl.readMP3Header(MP3

哪位大虾指点啊??????抛异常!!!!!

问题描述 importjava.util.*;className{privateStringfirstName;privateStringlastName;publicName(StringfirstName,StringlastName){this.firstName=firstName;this.lastName=lastName;}publicStringgetFirstName(){returnfirstName;}publicStringgetLastName(){returnlast

mysql数据库-一个javaWeb项目,为什么一到用户、Email注册校验时,就抛异常

问题描述 一个javaWeb项目,为什么一到用户.Email注册校验时,就抛异常 log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog). log4j:WARN Please initialize the log4j system properly. 2015-9-23 19:40:18 org.apache.catalina.core.StandardWrapperValve invoke 严重:

java中重写方法必须抛出和原方法一样的异常或者不抛异常

class A {     public void method throws IOException(){} } // 错误 class B {     public void method throws FileNotFoundException(){} } // 错误 class C {     public void method throws Exception(){} } // 错误 class D {     public void method throws IOExceptio

客户端取消异常-struts2 下载文件点取消抛异常(具体如下)

问题描述 struts2 下载文件点取消抛异常(具体如下) 下载服务的文件不在本地,是通过网络从其它服务器取的,如果点下载取消就会报下面的错误,(如果文件是在本机web服务器上不会报错) ClientAbortException: java.io.IOException at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:358) at org.apache.tomcat.util.buf.

使用ftpclient开源包进行做一个ftp客户端练习程序,不知为什么总是能连上却进行操作就抛异常!

问题描述 使用ftpclient开源包进行做一个ftp客户端练习程序,不知为什么总是能连上却进行操作就抛异常!220WelcometoSCAU-FTP1.Connectedtoftp1.scau.edu.cnon21USER*******331Passwordrequiredforanonymous.PASS*******230Useranonymousloggedin.SYST215UNIXType:L8RemotesystemisUNIXType:L8PASVjava.net.SocketE

python-Python代码执行后抛异常是为什么

问题描述 Python代码执行后抛异常是为什么 请问下懂Python的大牛,为什么程序执行完会蹦出一个异常?程序能执行,应该不是代码问题.今天下午遇到两次这个问题了.先谢谢回答了! 解决方案 你按下了ctrl+c?