आप एक जावा वस्तु के लिए एक अंतिम संदर्भ है, तो आप अभी भी इसे हेरफेर कर सकते हैं, लेकिन इसके संदर्भ बदल नहीं सकते। उदाहरण के लिए इस कोड को पूरी तरह से कानूनी है:
import javax.swing.JLabel;
class Test1 {
private final static JLabel l = new JLabel("Old text");
public static void main(String[] args) {
System.err.println(l.getText());
l.setText("New Text");
System.err.println(l.getText());
}
}
लेकिन आप यह नहीं कह सकते:
l = new JLabel("Newest Text");
एल पहला काम करने के बाद। ध्यान दें कि आप इस हालांकि कर सकते हैं: क्योंकि जब मैं घोषित किया जाता है यह कुछ भी भी रिक्त नहीं करने के लिए आवंटित नहीं किया गया है
import javax.swing.JLabel;
class Test1 {
public static void main(String[] args) {
final JLabel l;
String s = getArbitaryString(); // Assume this method returns a string
l = new JLabel(s);
System.err.println(l.getText());
}
}
यह किया जा सकता है। इसलिए आपको केवल एक बार कुछ असाइन करने की अनुमति है।
वही बात प्राइमेटिव के लिए जाती है। आप इस तरह यह करने के लिए एक मूल्य निर्दिष्ट कर सकते हैं:
class Test1 {
public static void main(String[] args) {
final int i;
i = 2;
}
}
लेकिन अब आप इसे आगे हेरफेर नहीं कर सकते हैं के बाद से केवल एक चीज आप आदिम प्रकार के लिए कर सकते उन्हें प्रदान करना है।
स्रोत
2009-08-08 21:17:15
वही चीज़ संग्रह के लिए भी सही है? – pramodc84
@ pramodc84: यह सभी चर के लिए समान है। हालांकि अधिकांश संग्रह म्यूटेबल हैं। –
तो मैं इसे प्रतिबिंब के साथ कैसे बदल सकता हूं? =) –