本帖最后由 yanyu0517 于 2009-08-31 14:39:52 编辑

解决方案 »

  1.   

    java 是值传递。当你传进去一个p时,但是你又重新进行了被始化new操作使p又重新指向了一个新的对象所以在方面里面的p的改变不会影响到方法外面的p你可以把这个p返回啊。
      

  2.   

    1楼正解
    也可以在方法外面实例化然后在load,操作对象是没问题的,重新指向就不可以了
      

  3.   

    楼主,你外面是怎么调用的?如果你的p在外面已经:Properties p = new Properties();
    再调用这个函数是可以的。p必须在外面初始化好!所以你里面的
    if (p == null) {
       p = new Properties();
    }是没用的!!其实Java的指针和C不大一样。但一定要用指针来说的话,可以认为,指针所指的对象是可以变化的,但是指针所指的地址是不可变化的。如果p指向了null,你在函数里面把它重新指向一个新的Properties对象,这个在函数内部是正确的,但是出去了就没了,还是指回原来的null。具体你可以debug看看