首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >空指针异常

空指针异常
EN

Stack Overflow用户
提问于 2010-11-02 14:23:39
回答 3查看 696关注 0票数 0
代码语言:javascript
复制
public class Main {
public static void main(String args[]) {

List list = new List(0);

int[] intArr = null;  
list.fillWithRandom(intArr); // null pointer
list.print(intArr);
   }
 }



  import java.util.*;
  class List {


 private static final int NUMINTS = 10;



 private void list(int numInts) {
 List list = new List(10); 
 int[] intArr = new int[10];
 } 

public List(int i) {
// TODO Auto-generated constructor stub
 }


//fill array with random numbers
 public void fillWithRandom(int intArr[]) {
 Random r;
 r = new Random();

 int i;

 for(i=0; i < NUMINTS ; i++)

 intArr[i] = r.nextInt();     // null pointer
} 

 //display numbers
public void print(int intArr[]) {
int i;
for(i=0 ; i < NUMINTS; i++)
System.out.println(intArr[i]);


    }
  }

我在编译器中的消息是:

线程"main“java.lang.NullPointerException在List.fillWithRandom(List.java:28)的Main.main(Main.java:9)出现异常

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-02 14:28:02

int数组设置为null,然后将其传递给fillWithRandom。然后,在没有为该数组实际分配任何空间的情况下,尝试填充它。

您需要先分配内存,然后才能使用。

这里有一个很好的简单的开始:

test.java:

代码语言:javascript
复制
    public class test {
        public static void main(String args[]) {
            MyList list = new MyList(10);
            list.fillWithRandom();
            list.print();
        }
    }

MyList.java:

代码语言:javascript
复制
    import java.util.Random;

    public class MyList {
        private int[] list = null;

        public MyList(int numInts) {
            list = new int[numInts];
        }

        public void fillWithRandom() {
            Random r = new Random();
            for (int i=0; i < list.length; i++)
                list[i] = r.nextInt();
        }

        public void print() {
            for (int i=0 ; i < list.length; i++)
                System.out.println(list[i]);
        }
    }
票数 4
EN

Stack Overflow用户

发布于 2010-11-02 14:30:59

您向方法fillWithRandom传递了一个空数组intArr

票数 0
EN

Stack Overflow用户

发布于 2010-11-02 15:21:58

代码语言:javascript
复制
  class Main {
private static Object intArr;

public static void main(String[] args) {

    List list = new List(10);
    list.fillWithRandom(intArr);
list.print(intArr);

}
  }




   import java.util.Random;
 public class List {

 private int[] list = null;

 public List(int numInts) {
 list = new int[numInts];
 }

 public void fillWithRandom(Object intArr) {
     Random r = new Random();
     for(int i = 0; i < list.length; i++)
         list[i] = r.nextInt();

 }
 public void print(Object intArr) {
     for(int i=0; i <list.length; i++)
     System.out.println(list[i]);
 }


   }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4075384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档