我在我正在处理的代码库中遇到以下代码:
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的使用无效.(它没有).
我假设答案必须用指针和内存做一些事情,但我想肯定知道.