我一直在关注this创建数据库的教程,有一个问题。它说“要访问您的数据库,请实例化 SQLiteOpenHelper
的子类:
FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext());
"。但是如何在另一个类中实例化我的 FeedReaderDbHelper
类(在我的例子中是一个服务)而不实例化整个类FeedReaderContract
类,因为它说我应该避免实例化前一个类?在我的服务中我正在这样做:
FeedReaderContract.FeedReaderDbHelper mDbHelper = new FeedReaderContract().new FeedReaderDbHelper(mContext);
但是教程说这是禁止的。
最佳答案
如果您的内部类与外部类的实例关联,您将无法执行此操作。 IOW,如果您的内部类不是静态内部类,那么单独创建内部类确实没有意义,对吗?
另一方面,您可以将内部类更改为静态内部类。但如果这是您所需要的,您必须小心,因为您基本上是在说静态内部类不依赖于外部类的任何一个实例。
关于java - 如何在不实例化外部类的情况下实例化内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23412231/