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