FeedReaderContract 的目的是什么以及如何在 OpenHelper 类中定义内部类 [关闭]

2023-11-25

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

这是链接我指的是。我提供代码。如何在 openhelper 类中定义内部类。有人可以建议我好方法吗?

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

public static abstract class FeedEntry implements BaseColumns 
{
    public static final String TABLE_NAME = "entry";
    public static final String COLUMN_NAME_ENTRY_ID = "entryid";
    public static final String COLUMN_NAME_TITLE = "title";
    public static final String COLUMN_NAME_SUBTITLE = "subtitle";
    ...
}

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

 //Prevents the FeedReaderContract class from being instantiated.
private FeedReaderContract() {}

我理解为:

public static class FeedReaderContract{

    // Prevents the FeedReaderContract class from being instantiated.
    private FeedReaderContract() {} 

    //The FeedEntry table definition
    public static abstract class FeedEntry implements BaseColumns {
        public static final String TABLE_NAME = "entry";
        public static final String COLUMN_NAME_ENTRY_ID = "entryid";
        public static final String COLUMN_NAME_TITLE = "title";
        public static final String COLUMN_NAME_SUBTITLE = "subtitle";
        ...
    }

    //more tables definition
}

所以你不能实例化合约,但可以访问所有内部类常量。就像示例行一样:

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

访问FeedEntry常数(TABLE_NAME and _ID) 的内部类FeedReaderContract class.

希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FeedReaderContract 的目的是什么以及如何在 OpenHelper 类中定义内部类 [关闭] 的相关文章

随机推荐