से कोटलिन एक्सटेंशन फ़ंक्शंस एक्सेस करना जावा कोड से एक्सटेंशन फ़ंक्शंस तक पहुंच बनाना संभव है?जावा
मैंने कोटलिन फ़ाइल में एक्सटेंशन फ़ंक्शन को परिभाषित किया।
package com.test.extensions
import com.test.model.MyModel
/**
*
*/
public fun MyModel.bar(): Int {
return this.name.length()
}
जहां MyModel
एक (जेनरेट) जावा क्लास है।
MyModel model = new MyModel();
model.bar();
हालांकि, वह काम नहीं करता: अब, मैं मेरे सामान्य जावा कोड में इसे का उपयोग करना चाहता था। आईडीई bar()
विधि को पहचान नहीं पाएगा और संकलन विफल रहता है।
क्या करता है काम kotlin से एक स्थिर समारोह के साथ उपयोग कर रहा है:
public fun bar(): Int {
return 2*2
}
import com.test.extensions.ExtensionsPackage
का उपयोग करके ऐसा मेरी आईडीई ठीक से कॉन्फ़िगर किया जा रहा है।
मैंने कोटलिन दस्तावेज़ों से पूरी जावा-इंटरऑप फ़ाइल की खोज की और बहुत कुछ भी गुगल किया, लेकिन मुझे यह नहीं मिला।
मैं क्या गलत कर रहा हूं? क्या यह भी संभव है?
कृपया * काम नहीं करता * पर विस्तृत करें? क्या यह संकलित करता है, अपवाद फेंकता है, या क्या? क्या आप 'com.est.extensions.MyModel' पैकेज आयात करते हैं? – meskobalazs
@meskobalazs मेरा संपादित उत्तर देखें। – Lovis
@meskobalazs भी, मैं इसे आयात भी नहीं कर सकता। मैं केवल 'com.test.extensions.ExtensionsPackage' आयात कर सकता हूं – Lovis