gpt4 book ai didi

java - 当一个类的同一个实例作为参数传递到另一个类中时,如何引用该类的同一个实例?

转载 作者:行者123 更新时间:2023-12-02 04:56:09 27 4
gpt4 key购买 nike

我在这一类中扩展了 SQLiteOpenHelper,并使用以下方法来更新我的数据库。

public void UpDateDataBase(ItemClass itemClass){

SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_ItemClass_NAME, itemClass.getTaskName());
contentValues.put(KEY_STATUS, itemClass.getStatus());
db.update(TABLE_NAME, contentValues, KEY_ID + " = ?", new String[]{String.valueOf(itemClass.getId())});
}

public static DataBaseHelper getInstance(){
return dbHelper;
}

}

当我尝试使用

调用其他类中的 UpdateDataBase() 方法时
DataBaseHelper.getInstance().UpDateDataBase(new ItemClass());

它告诉我我正在引用一个空对象。如何引用该类的同一个实例?

谢谢。

尝试在空对象引用上调用虚拟方法“void demoapp.app.android.sqlitedatabaseapplication.DataBaseHelper.UpDateDataBase(demoapp.app.android.sqlitedatabaseapplication.ItemClass)”

最佳答案

您需要使您的 DatabaseHelper 类成为单例。单例是一种将类的实例化限制为单个对象的设计模式。 Alex Lockwood 写了一篇关于数据库的非常简单且解释良好的文章:http://www.androiddesignpatterns.com/2012/05/correctly-managing-your-sqlite-database.html

此外,在 Java 中,类方法名称以小写字母开头是一种约定:updateDatabase 而不是 UpdateDatabaseCamelcase 包括在字符串中新单词的开头放置一个大写字母,不带空格:updateDatabase 而不是 UpDateDataBase

关于java - 当一个类的同一个实例作为参数传递到另一个类中时,如何引用该类的同一个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28754810/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com