2017-03-11 9 views
10

मैं Kotlin में निम्न विधि है:मैं जावा से reified जेनरिक साथ Kotlin तरीकों कैसे फोन कर सकते हैं?

inline fun <reified T> foo() { 

} 

अगर मैं इस तरह जावा से कॉल करने के लिए प्रयास करें:

myObject.foo(); 

या इस तरह:

myObject.<SomeClass>foo(); 

मैं निम्नलिखित त्रुटि:

java: foo() has private access in MyClass

मैं जावा से foo विधि कैसे फोन कर सकते हैं?

उत्तर

11

कोई रास्ता नहीं जावा से reified प्रकार मानकों के साथ Kotlin inline कार्यों कॉल करने के लिए नहीं है, क्योंकि वे बदल दिया और (कॉल स्थलों पर inlined आपके मामले में किया जाना चाहिए, T प्रत्येक कॉल स्थल पर वास्तविक प्रकार के साथ प्रतिस्थापित किया जाना चाहिए, लेकिन वहाँ बहुत है inline सिर्फ इस से कार्य करता है), और जावा के लिए और अधिक संकलक तर्क, प्रत्याशित कि पूरी तरह से अनजान है।

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