相关疑难解决方法(0)

为什么最终对象可以修改?

我在我正在处理的代码库中遇到以下代码:

public final class ConfigurationService {
    private static final ConfigurationService INSTANCE = new ConfigurationService();
    private List providers;

    private ConfigurationService() {
        providers = new ArrayList();
    }

    public static void addProvider(ConfigurationProvider provider) {
        INSTANCE.providers.add(provider);
    }

    ...
Run Code Online (Sandbox Code Playgroud)

INSTANCE被宣布为final.为什么可以添加对象INSTANCE?不应该使final的使用无效.(它没有).

我假设答案必须用指针和内存做一些事情,但我想肯定知道.

java final

82
推荐指数
6
解决办法
5万
查看次数

标签 统计

final ×1

java ×1