java - 有人怎么会意外地在 Java 中启动一个类呢?

标签 java android class instantiation

我正在阅读 android 教程,并且遇到了以下代码:

public final class FeedReaderContract {
    // To prevent someone from accidentally instantiating the contract class,
    // give it an empty constructor.
    public FeedReaderContract() {}

    /* Inner class that defines the table contents */
    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";
         ...
    }
}

这是教程的链接: https://developer.android.com/training/basics/data-storage/databases.html#DbHelper

虽然我以前从事过 Java 工作,但我不明白为什么人们会意外地在 Java 中启动一个类。这怎么可能?

This不是我要找的。

最佳答案

我认为它应该是私有(private)的,例如:

private FeedReaderContract() {}

这将使开发人员无法实例化 FeedReaderContract 实例

关于java - 有人怎么会意外地在 Java 中启动一个类呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37298678/

相关文章:

android - 在 getView() 中设置点击监听器后,ListView 中的项目不能长时间点击

python - 用符号序列替换字符串中的关键字

php - CakePHP ServerRequest getQuery() 在 Helper 类中返回空数组

c# - 对有关我的超时类的反馈感兴趣

java - 如何将字符串附加到所有日志消息

java - 将数据从通知发送到已关闭的 Activity

java - 为什么我可以更改类中的私有(private)属性?

android - 在继续 Activity 之前等待 Intent 完成

android - 上周未显示 DatePickerDialog

java - 前端 (HTML) 未从 Microsoft Azure 中的 mysql 数据库获取 Spring Boot 应用程序中的数据