2009-10-30 5 views
8

मेरे पास एक डीटीओ है जिसमें सदस्यों का पूरा समूह है। मैं सोच रहा था कि जावा कक्षा के लिए (इन) के विचार का समर्थन करता है या नहीं। मुझे नहीं लगता कि यह करता है, लेकिन अगर यह हुआ तो यह मुझे दुःख का एक टन बचाएगा, इसलिए, मुझे लगा कि मैं वहां सवाल पूछता हूं।जावा में कक्षा के सदस्यों के माध्यम से लूप करना संभव है?

+0

'डीटीओ 'क्या है? – CodyBugstein

+1

आप इसे एक प्रश्न पर पूछ रहे हैं जिसका उत्तर 3.5 साल पहले किया गया था ?! एक डीटीओ एक ऑब्जेक्ट होता है जो डेटा सेट का प्रतिनिधित्व करने के लिए उपयोग किया जाता है, आमतौर पर एक कोरोलरी डीबी टेबल से जुड़ा होता है। मैं यहाँ वसंत के साथ उपयोग कर रहा था। मुझे लगता है कि यह ज्यादातर जेडीबीसी स्थितियों में उपयोग किया जाता है। –

+0

वास्तव में मैं हूं :) कालातीत साइबर स्पेस में चीजों की बड़ी योजना में 3.5 साल क्या है? आपके उत्तर के लिए धन्यवाद। – CodyBugstein

उत्तर

26

ठीक है, आप प्रतिबिंब के साथ यह कर सकते हैं:

for (Field field : clazz.getFields()) 
{ 
    ... 
} 

(या तरीकों आदि के लिए बराबर)

फिर आप एक विशिष्ट उदाहरण, या स्थिर मूल्यों के लिए फ़ील्ड मान प्राप्त कर सकते हैं।

+0

+1। –

+0

बहुत बाध्य। धन्यवाद। –

4

हां, Reflection API का उपयोग करें। विशेष रूप से, से getFields और getMethods विधियों की जांच करें।

0

आप सभी सदस्यों और कार्यों को प्राप्त करने के लिए प्रतिबिंब का उपयोग कर सकते हैं।

शायद आपको खुद से पूछना होगा कि डीटीओ के इतने सारे सदस्य क्यों हैं जो आपको लगता है कि यह आवश्यक है। रिफैक्टर करने का समय हो सकता है।

7

यह परेशानी का एक सा है, हालांकि करता है, यह।

आपको प्रतिबिंब का उपयोग करना होगा।

देखें: Class.getDeclaredFieds()

फील्ड वस्तुओं सभी क्षेत्रों वर्ग या इस वर्ग वस्तु का प्रतिनिधित्व करती इंटरफ़ेस द्वारा घोषित दर्शाती की एक सरणी देता है

आप एक उदाहरण देख सकते here

फ़ील्ड प्राप्त करने के तीन तरीके हैं कक्षा वस्तु से वस्तु।

Class cls = java.awt.Point.class; 

// By obtaining a list of all declared fields. 
Field[] fields = cls.getDeclaredFields(); 

// By obtaining a list of all public fields, 
// both declared and inherited. 
fields = cls.getFields(); 
for (int i=0; i<fields.length; i++) { 
    Class type = fields[i].getType(); 
    process(fields[i]); 
} 

// By obtaining a particular Field object. 
// This example retrieves java.awt.Point.x. 
try { 
    Field field = cls.getField("x"); 
    process(field); 
    } catch (NoSuchFieldException e) { 
} 

अधिक विकल्पों के लिए Class वर्ग परिभाषा देखें।

संबंधित मुद्दे