Groovy / grails कैसे एक डेटा प्रकार निर्धारित करने के लिए?


176

ग्रूवी में डेटा प्रकार निर्धारित करने का सबसे अच्छा तरीका क्या है?

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

जवाबों:


244

किसी वस्तु का वर्ग निर्धारित करने के लिए बस कॉल करें:

someObject.getClass()

आप इसे someObject.classज्यादातर मामलों में संक्षिप्त कर सकते हैं । हालाँकि, यदि आप इस पर इसका उपयोग करते हैं, तो Mapकुंजी 'वर्ग' के साथ मान को पुनः प्राप्त करने का प्रयास करेगा। इस वजह से, मैं हमेशा उपयोग करता हूं, getClass()हालांकि यह थोड़ा लंबा है।

यदि आप जांचना चाहते हैं कि कोई वस्तु किसी विशेष इंटरफ़ेस को लागू करती है या किसी विशेष वर्ग (जैसे दिनांक) का उपयोग करती है:

(somObject instanceof Date)

या यह जांचने के लिए कि क्या किसी वस्तु का वर्ग बिल्कुल एक विशेष वर्ग है (इसका उपवर्ग नहीं), उपयोग करें:

(somObject.getClass() == Date)

2
instanceofइंटरफ़ेस के आधार पर फ़िल्टरिंग के लिए बहुत अच्छा है।
cdeszaq

कम से कम नवीनतम ग्रूवी (2.3.7) में, हम someObject.class
loloof64

5
@LaurentBERNABE जो ज्यादातर मामलों में काम करता है, लेकिन सभी में नहीं, उदाहरण के Mapलिए
Dónal

आप सही हैं: हम इस मामले में अशक्त हो जाते हैं। गलती के लिए माफी मांग रहा है।
लोलोफ64

फिर ये क्या है? def test = {} println test.getClass() वर्ग Script1 $ _run_closure1 ??
पेट्रुनोव

33

वस्तु प्रकार की जांच करने का सरल तरीका

somObject in Date

इंटरफेस के लिए भी लागू किया जा सकता है।


3

बस दुआनल के जवाब में एक और विकल्प जोड़ने के लिए, आप अभी भी अच्छी पुरानी java.lang.Object.getClass()विधि का उपयोग कर सकते हैं ।


0

आप सदस्यता ऑपरेटर का उपयोग कर सकते हैं कैस () जो एक और बड़ा तरीका है:

assert Date.isCase(new Date())

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.