android – FeedReaderContract的目的是什么以及如何在OpenHelper类中定义内部类

前端之家收集整理的这篇文章主要介绍了android – FeedReaderContract的目的是什么以及如何在OpenHelper类中定义内部类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在android中学习sqlite.对于sqlite,我正在使用developer.android.com.但是在阅读代码时我遇到了一些困惑.他们编写了FeedReaderContract构造函数以防止
实例化FeedReaderContract类但它们没有在任何地方定义FeedReaderContract类以及FeedReaderContract和FeedEntry之间的关系.

Here’s link我指的是.我提供代码.如何在openhelper类中定义内部类.有人能建议我这么好吗?

例如,此代码段定义单个表的表名和列名:

  1. public static abstract class FeedEntry implements BaseColumns
  2. {
  3. public static final String TABLE_NAME = "entry";
  4. public static final String COLUMN_NAME_ENTRY_ID = "entryid";
  5. public static final String COLUMN_NAME_TITLE = "title";
  6. public static final String COLUMN_NAME_SUBTITLE = "subtitle";
  7. ...
  8. }

为了防止有人意外地实例化合同类,给它一个空的构造函数.

  1. //Prevents the FeedReaderContract class from being instantiated.
  2. private FeedReaderContract() {}
最佳答案
我理解为:

  1. public static class FeedReaderContract{
  2. // Prevents the FeedReaderContract class from being instantiated.
  3. private FeedReaderContract() {}
  4. //The FeedEntry table definition
  5. public static abstract class FeedEntry implements BaseColumns {
  6. public static final String TABLE_NAME = "entry";
  7. public static final String COLUMN_NAME_ENTRY_ID = "entryid";
  8. public static final String COLUMN_NAME_TITLE = "title";
  9. public static final String COLUMN_NAME_SUBTITLE = "subtitle";
  10. ...
  11. }
  12. //more tables definition
  13. }

因此,您无法实现合同,但可以访问所有内部类Constants.像示例行:

  1. private static final String sql_CREATE_ENTRIES =
  2. "CREATE TABLE " + FeedReaderContract.FeedEntry.TABLE_NAME + " (" +
  3. FeedReaderContract.FeedEntry._ID + " INTEGER PRIMARY KEY," //continues

访问FeedReaderContract类中内部类的FeedEntry常量(TABLE_NAME和_ID).

希望能帮助到你.

猜你在找的Android相关文章