如何在不实例化外部的情况下实例化内部类

时间:2014-05-01 16:42:37

标签: java android database class instantiation

我一直在关注创建数据库的this教程并提出一个问题。它说“要访问您的数据库,请实例化SQLiteOpenHelper的子类: FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext());“。但是如何在不实例化整个FeedReaderDbHelper类的情况下在另一个类(在我的情况下在服务中)实例化我的FeedReaderContract类,因为它说我应该避免实例化前者在我的服务中,我这样做:

FeedReaderContract.FeedReaderDbHelper mDbHelper = new FeedReaderContract().new FeedReaderDbHelper(mContext);

但教程说这是禁止的。

1 个答案:

答案 0 :(得分:3)

如果您的内部类与外部类的实例相关联,则您将无法执行此操作。 IOW,如果你的内部类不是一个静态内部类,那么单独创建你的内部类真的没有意义,对吗?

另一方面,您可以将内部类更改为静态内部类。但是如果这是你需要的,你必须要小心,因为你基本上说静态内部类不依赖于外部类的任何一个实例。

检查出来:https://stackoverflow.com/a/70358/2231632