Class ObjectA
...
{}
Public Class Test ... {
Public static ObjectA Factory()...{
return new ObjectA();
}
}
Public Class Test ... {
Public static ObjectA Factory()...{
return new ObjectA();
}
}
上面例子中Test类中Factory方法返回一个局部的ObjectA对象,我就产生疑问,局部对象在方法外不是销毁了吗,这样返回是不是有问题.
这样写肯定是没有问题的,我查了资料,这样返回的是新ObjectA对象的Reference,就像对象的赋值操作一样,赋的是对象的Reference,而引用是个整型的,方法外值是不会变的.返回的新对象是由GC来回收的,只要有引用还指向这个对象,它就不会被回收.明显的,对象的引用在返回后还指向这个对象.所以,java中函数把一个局部对象作为返回值是可以的.