मेरे पास यह चर और यह Arraylist है:

    String cod = ":)", desfondo = ":(", desCorFondo = ":|";
    ArrayList<Object> list = new ArrayList<>(Arrays.asList(1,cod,desfondo,desCorFondo));

मुझे ऐसा कुछ चाहिए:

System.out.println(variableName from arraylist  + " " + list.get(1));

आउटपुट:

cod :)

क्या हैशपैप का उपयोग किए बिना परिवर्तनीय नाम किसी भी तरह से प्राप्त करना संभव है?

1
Bardales 18 मार्च 2020, 18:51
शायद प्रतिबिंब कुछ देखने लायक है
 – 
rhowell
18 मार्च 2020, 18:53
आपने जो वर्णन किया है, उसके लिए List सही डेटा संरचना नहीं है।
 – 
Andrew S
18 मार्च 2020, 19:11
मुझे पता है, केवल चर नाम और मूल्य को जोड़ने के लिए है।
 – 
Bardales
18 मार्च 2020, 19:13
Map<String, String> का उपयोग करने पर विचार करें, जहां कुंजी प्रभावी रूप से variableName है।
 – 
Andrew S
18 मार्च 2020, 19:16

1 उत्तर

सबसे बढ़िया उत्तर

आप प्रतिबिंब द्वारा सभी फ़ील्ड नाम प्राप्त कर सकते हैं

Class yourClass = YourClass.class
Field[] fields = yourClass.getFields();
for(Field f: fields){
    f.getName();
}

और फिर Field.get() का उपयोग उस वस्तु की अपेक्षा करता है जिसमें फ़ील्ड तर्क के रूप में है। तो आपके पास field.get(object) होना चाहिए।

चूंकि आप फ़ील्ड मान की तलाश में हैं, इसलिए आप इसे इस प्रकार प्राप्त कर सकते हैं:

Object objectValue = field.get(object);

आप मूल्य प्राप्त करने के लिए उपरोक्त का उपयोग कर सकते हैं और अपनी इच्छानुसार प्रिंट कर सकते हैं। मेरी राय सूची से आप जो करना चाहते हैं उसके लिए अच्छा नहीं है, आदर्श रूप से हैश मैप।

0
AzyCrw4282 18 मार्च 2020, 19:15