7
เหตุใดจึงสามารถแก้ไขวัตถุสุดท้ายได้
ฉันเจอรหัสต่อไปนี้ในฐานรหัสที่ฉันกำลังทำอยู่: 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? ไม่ควรทำให้การใช้ขั้นสุดท้ายเป็นโมฆะ (มันไม่) ฉันสมมติว่าคำตอบต้องทำอะไรบางอย่างกับตัวชี้และหน่วยความจำ แต่อยากจะรู้แน่