我在这一类中扩展了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/

10-12 01:32