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

标签 java android

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

相关文章:

java - 二叉树中序遍历时抛出堆栈溢出异常

Android Activity 堆积在后台导致 OutOfMemory 错误

android - Android 和 iOS 在 Intent 和后台操作方面的差异

Android Facebook 登录问题

java - 数据未插入到 Spring-Hibernate-envers webapp 中的审计表中

Java流来验证映射中的int

java - 描述用于十进制到二进制转换的此函数

java - Toast 和 Progress 对话框边缘被切断

android - ScrollView 不会回到布局的开头 - Android

java - 在循环下从数组填充 jtable