加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 导致NullPointerException的ArrayList.add()方法

发布时间:2020-12-15 05:20:10 所属栏目:Java 来源:网络整理
导读:LongInteger类在运行时导致以下错误: Exception in thread "main" java.lang.NullPointerExceptionat LongInteger.breakString(LongInteger.java:38)at LongInteger.init(LongInteger.java:17)at LongInteger.main(LongInteger.java:149) 以下是一些相关的
LongInteger类在运行时导致以下错误:

Exception in thread "main" java.lang.NullPointerException
at LongInteger.breakString(LongInteger.java:38)
at LongInteger.<init>(LongInteger.java:17)
at LongInteger.main(LongInteger.java:149)

以下是一些相关的课程摘录:

public class LongInteger extends Object {
private ArrayList<String> storedStrings;          


  // Constructor
 public LongInteger(String s) {
    this.setInputString(s);
    this.breakString(this.inputString);       //Exception @ line 17
}

 /**
  * the purpose of this method is to break the input string into an 
  * ArrayList<String> where each String has a length of 9 or less.
  */
 private void breakString(String s){         
    if(s.length()>9){
        storedStrings.add(0,s.substring(s.length()-9,s.length()));
        this.breakString(s.substring(0,s.length()-9));
    } else {
        this.storedStrings.add(0,s);        //Exception @ line 38
    }
 }


public static void main(String[] args) {
    LongInteger a = new LongInteger("12345");   //Exception @ line 149
    }
}

我不知道是什么导致了这个NullPointerException.有人有建议吗?

解决方法

你永远不会实例化storedStrings.尝试改变:

private ArrayList<String> storedStrings;

至:

private ArrayList<String> storedStrings = new ArrayList<String>();

如果你有这条线:

this.storedStrings.add(0,s);

它正在调用ArrayList实例上的方法add< String>存储在this.storedStrings中.新运算符是您获取新事物的方式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读