如何编写getDB()函数并正确使用它?
这是我的App对象的代码段:
public class MyApp extends UiApplication {
private static PersistentObject m_oStore;
private static MyBigObjectOfStorage m_oDB;
static {
store = PersistentStore.getPersistentObject(0xa1a569278238dad2L);
}
public static void main(String[] args) {
MyApp theApp = new MyApp();
theApp.enterEventDispatcher();
}
public MyApp() {
pushScreen(new MyMainScreen());
}
// Is this correct? Will it return a copy of m_oDB or a reference of m_oDB?
public MyBigObjectOfStorage getDB() {
return m_oDB; // returns a reference
}
}
最佳答案
public MyBigObjectOfStorage getDB() {
return m_oDB;
}
正如你所说的是正确的。它将返回引用的副本,该副本介于引用和副本之间。
getDB()返回的实际对象实例与m_oDB引用的对象相同。但是,您不能将getDB()返回的引用更改为指向其他对象,并实际上使本地私有m_oDB指向新对象。 m_oDB仍将指向它已经存在的对象。
有关更多详细信息,请参见http://www.javaworld.com/javaworld/javaqa/2000-05/03-qa-0526-pass.html。
尽管在那里查看代码,但根本没有设置m_oDB,因此getDB()将始终返回null。
关于java - Java应用程序/类设计-Java中的访问器如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/220624/