मैं जावा प्रतिबिंब एपीआई के साथ खेल रहा था और देखा कि विविध तर्क सूची वाले विधियां क्षणिक बन जाती हैं। यह संदर्भ क्यों है और इस संदर्भ में transient
कीवर्ड का अर्थ क्या है?क्यों varargs के साथ जावा विधियों क्षणिक के रूप में पहचाना?
जावा शब्दावली से, क्षणिक:
जावा प्रोग्रामिंग भाषा है कि इंगित करता है कि एक क्षेत्र एक वस्तु का धारावाहिक रूप का हिस्सा नहीं है में एक कीवर्ड। जब किसी ऑब्जेक्ट को क्रमबद्ध किया जाता है, तो इसके क्षणिक फ़ील्ड के मान धारावाहिक प्रतिनिधित्व में शामिल नहीं होते हैं, जबकि इसके गैर-क्षणिक फ़ील्ड के मान शामिल होते हैं।
हालांकि यह परिभाषा विधियों के बारे में कुछ भी नहीं कहती है। कोई विचार?
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class Dummy {
public static void main(String[] args) {
for(Method m : Dummy.class.getDeclaredMethods()){
System.out.println(m.getName() + " --> "+Modifier.toString(m.getModifiers()));
}
}
public static void foo(int... args){}
}
आउटपुट:
main --> public static
foo --> public static transient
ओह, दिलचस्प! मैंने सोचा था कि विधियों को क्रमबद्ध नहीं किया गया है, इसलिए अब मैं उत्सुक हूं। – Kris
कमाल की खोज। :) – biziclop
@biziclop क्या आश्चर्यजनक है, 'Modifier.toString (-1)' का प्रयास करें, बहुत बेहतर – bestsss