最佳答案
我在一个正在编写的代码库中偶然发现了以下代码:
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);
}
...
INSTANCE
被声明为 final
。为什么可以将对象添加到 INSTANCE
?难道这不应该使得 final 的使用无效吗。(并非如此)。
我假设答案必须与指针和内存有关,但希望确切知道。