我一直在关注创建数据库的this教程并提出一个问题。它说“要访问您的数据库,请实例化SQLiteOpenHelper
的子类:
FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext());
“。但是如何在不实例化整个FeedReaderDbHelper
类的情况下在另一个类(在我的情况下在服务中)实例化我的FeedReaderContract
类,因为它说我应该避免实例化前者在我的服务中,我这样做:
FeedReaderContract.FeedReaderDbHelper mDbHelper = new FeedReaderContract().new FeedReaderDbHelper(mContext);
但教程说这是禁止的。
答案 0 :(得分:3)
如果您的内部类与外部类的实例相关联,则您将无法执行此操作。 IOW,如果你的内部类不是一个静态内部类,那么单独创建你的内部类真的没有意义,对吗?
另一方面,您可以将内部类更改为静态内部类。但是如果这是你需要的,你必须要小心,因为你基本上说静态内部类不依赖于外部类的任何一个实例。