public class J {
public Integer method(Integer x)
{
Integer val = x;
try
{
return val;
}
finally
{
val = x + x;
}
}
public static void main(String[] args)
{
J littleFuzzy = new J();
System.out.println(littleFuzzy.method(new Integer(10)));
}
}
यह "10" वापस आ जाएगा।कैच में वापसी विवरण का व्यवहार और अंत में
अब मैं केवल रिटर्न प्रकार इंटीजर को स्ट्रिंगबिल्डर में बदलता हूं और आउटपुट बदल दिया गया था।
public class I {
public StringBuilder method(StringBuilder x)
{
StringBuilder val = x;
try
{
return val;
}
finally
{
val = x.append("aaa");
}
}
public static void main(String[] args)
{
I littleFuzzy = new I();
System.out.println(littleFuzzy.method(new StringBuilder("abc")));
}
}
उत्पादन "abcaaa"
तो, किसी को विस्तार से मुझे समझा सकता है।? अंतर क्या हैं।
जब भी मैंने अपनी मशीन पर इस कार्यक्रम को निष्पादित किया तो मैं भी उलझन में हूं। पहले मामले में यह 10 लौटाता है (मुझे उम्मीद थी कि यह 20 वापस आ जाएगा), दूसरे मामले में यह अब्बाआ (जो संलग्न होने के बाद है) लौट रहा है। मैं इस व्यवहार पर भी परेशान हूं। (बीच में मैं वह नहीं हूं जिसने इसे ऊपर उठाया है।) – JProgrammer
यह एक अच्छा सवाल है। बुनियादी की कुछ यादें वापस मिला। इसमें गलत क्या है ? – Siddharth