package test;public class AssignTest {
  public long[][] time = null;
  public AssignTest() {
  }  public void setArray(long[][] a) {
    a = new long[3][4];
    for (int i = 0; i < a.length; i++) {
      for (int j = 0; j < a[i].length; j++) {
        a[i][j] = i * j;
      }
    }
  }  public void printArray() {    setArray(this.time);//通过这个函数对成员变量进行赋值
    for (int i = 0; i < time.length; i++) {
      for (int j = 0; j < time[i].length; j++) {
        System.out.println(time[i][j]);
      }
    }
  }  public static void main(String[] args) {
    AssignTest at = new AssignTest();
    at.printArray();
  }
}
java.lang.NullPointerException at test.AssignTest.printArray(AssignTest.java:20) at test.AssignTest.main(AssignTest.java:29)Exception in thread "main" 

解决方案 »

  1.   

    java是传值调用,你那个a的声明在public void setArray(long[][] a)
    里。
      public void setArray() {
        time = new long[3][4];
        for (int i = 0; i < time.length; i++) {
          for (int j = 0; j < time[i].length; j++) {
           time[i][j] = i * j;
          }
        }
      }
      

  2.   

    具体问题不明白,看看虚拟机的东西或许有帮助,我觉得java里面的方法都是传值的,也就是说你在方法里对一个参数的赋值,不会影响那个参数的值的。
      

  3.   

    public void printArray() {    setArray(this.time);//this.time为null
        for (int i = 0; i < time.length; i++) {         //time为null有异常
          for (int j = 0; j < time[i].length; j++) {
            System.out.println(time[i][j]);
          }
        }
      }
    其实在这段程序一直没有对time进行初始化,一直为null,setArray(this.time)对time根本没处理,就跟
    setArray(null)一样
      

  4.   

    首先更正 iCharlene(我爱阿sa) 朋友的观点,JAVA数组的调用并非以值传递,而是以引用传递。^^
    这个问题是一个十分典型的关于java reference的问题,而大多数朋友在这样的问题上产生的困惑源自于C\C++的机制,因为在关于reference传递的问题上,JAVA 与 C\C++
      

  5.   

    本人觉得java中基本类型是值传递,其它对象间是引用传递!也许我还不是很清楚
      

  6.   

    java编程思想说的应该是对的吧!基本类型是值传递,其它对象间是引用传递,这些问题怎么说吧,也没有一个很权威的说法,你用jbulider调一段代码就明白了
      

  7.   

    呵呵,本人对此问题做了小小的实例以说明问题的核心,由于内容较长,加之近期此问题较为普遍,所以特地新开一帖以小谈该问题,如果大家对此问题感兴趣可以观看我在本版的帖子初学 java reference 机制 (作者:midthinker)http://community.csdn.net/Expert/topic/3993/3993622.xml?temp=.3489954hehe...