2017-01-04 10 views
5

काम नहीं करता है मैं रियलम का उपयोग करता हूं और इसके लिए मॉडल कक्षाओं में open कीवर्ड की आवश्यकता होती है।कोटलिन ऑल-ओपन कंपाइलर प्लगइन

https://blog.jetbrains.com/kotlin/2016/12/kotlin-1-0-6-is-here/, मैंने रीयल मॉडल कक्षाओं से open कीवर्ड को निकालने के लिए सभी खुली कंपाइलर प्लगइन का उपयोग करने का प्रयास किया।

पहले, मैं सभी से खोलने संकलक प्लगइन जोड़ा गया है और एनोटेशन के पैकेज के नाम सेट

buildscript { 
    dependencies { 
    classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version" 
    } 
} 

apply plugin: "kotlin-allopen" 

allOpen { 
    annotation("com.mycompany.myapp.annotation") 
} 

दूसरा, मैं एनोटेशन

package com.mycompany.myapp.annotation 
annotation class AllOpenAnnotation 

अंत में उत्पन्न, मैं क्षेत्र मॉडल वर्ग

को एनोटेशन जोड़ा
@AllOpenAnnotation 
class Model { 
    var id: Int = -1, 
    var title: String = "", 
    var desc: String? = null 
}: RealmObject() 

लेकिन error: cannot inherit from final Model त्रुटि होती है।

क्या ऐसा कुछ है जिसे मैंने गलत किया?

उत्तर

6

आप अपने कॉन्फ़िग फ़ाइल में पथ के लिए एनोटेशन के नाम जोड़ने की जरूरत:

allOpen { 
    annotation("com.mycompany.myapp.annotation.AllOpenAnnotation") 
}