2017-06-28 6 views
6

कोटलिन में हेडर और शरीर दोनों वैकल्पिक हैं; अगर कक्षा में कोई शरीर नहीं है, घुंघराले ब्रेसिज़ को छोड़ा जा सकता है।कोटलिन - शरीर के बिना कक्षा का उपयोग क्या है?

तो हम जैसे वर्ग को परिभाषित कर सकते हैं,

class Empty 

वर्ग के इस प्रकार के उपयोग क्या है?

+2

जावा में 'सार्वजनिक वर्ग खाली {}' के समान ही? – assylias

उत्तर

8

आप कुछ कस्टम अपवाद के लिए उपयोग कर सकते हैं:

class Empty : Exception() 

या marker interface एक के रूप में:

interface Empty 

या data class एक के रूप में:

data class Empty(val s: String) 

या एक marker annotation के रूप में:

annotation class Empty 

~ यह पढ़ने के लिए post अच्छा है।

+0

और, 'डेटा क्लास MyDataClass (...) ' – nhaarman

2

Kotlin उदाहरण के लिए, शरीर के बिना किसी भी प्रकार की घोषणा करने के लिए अनुमति देता है:

interface Interface; 

class Class; 

annotation class Annotation; 

sealed class SealedClass; 

data class DataClass(var value: String); 

object ObjectClass; 

enum class EnumClass; 

class CompanionClass { 
    companion object 
} 

प्रत्येक परिभाषा के उपयोग से नीचे के रूप में वर्णित किया जा सकता है:

  • इंटरफ़ेस - एक marker interface के रूप में।
  • एनोटेशन - एनोटेटेड प्रकार का वर्णन कुछ क्षमता है। उदाहरण: जूनिटऔर @After एनोटेशन।
  • ऑब्जेक्ट - यह अक्सर टोकन या लॉक या प्लेसहोल्डर और .etc के रूप में मौजूद होता है। उदाहरण: synchronized(lock){ /*thread safe working*/ }
  • डेटा क्लास - , setters के साथ एक जावा POJO कक्षा को जल्दी से परिभाषित करें? , equals, hashCode, toString और componentN ऑपरेटर कोटलिन में विनाश के लिए।
  • अन्य - वे व्यर्थ हैं, बस भाषा वाक्यविन्यास हैं।
संबंधित मुद्दे