我在这一类中扩展了 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 而不是 UpdateDatabase Camelcase 包括在字符串中新单词的开头放置一个大写字母,不带空格:updateDatabase 而不是 UpDateDataBase
关于java - 当一个类的同一个实例作为参数传递到另一个类中时,如何引用该类的同一个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28754810/