我正在创建 SQL 数据库,并且基于 this site. 问题是,我不知道如何访问内部类的方法,而外部类有私有(private)构造函数。
public class MyDBHandler {
private MyDBHandler() {
}
public static class FeedEntry implements BaseColumns {
public static final String TABLE_NAME = "Tasks";
public static final String COLUMN_NAME_TITLE = "TASK_LABEL";
}
public class FeedReaderDbHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "myDatabase.db";
public FeedReaderDbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public long saveTasks(String title) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(FeedEntry.COLUMN_NAME_TITLE, title);
long newRowId = db.insert(FeedEntry.TABLE_NAME, null, contentValues);
return newRowId;
}
}
}
我正在尝试从另一个 java 文件的 onClick(View v) 方法访问 saveTasks(String title) 方法。
我尝试过这样的事情:
MyDBHandler.FeedReaderDbHelper dbHelper = new MyDBHandler.FeedReaderDbHelper(v.getContext());
但是我当然收到“MyDBHandler 不是封闭类”错误。
或者
MyDBHandler.FeedReaderDbHelper dbHelper= new MyDBHandler().new FeedReaderDbHelper(v.getContext());
但是,Android studio 不断告诉我:“MyDbHandler 具有私有(private)访问权限”
是否可以这样做?
最佳答案
如果您确实想保留内部类,则将其设为静态并按如下方式使用它:
new MyDBHandler.FeedReaderDbHelper(getContext())
关于java - 使用另一个类的私有(private)类构造函数访问内部子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46154462/