Có thể truy cập các chức năng mở rộng từ mã Java?
Tôi đã định nghĩa hàm mở rộng trong tệp Kotlin.
package com.test.extensions
import com.test.model.MyModel
/**
*
*/
public fun MyModel.bar(): Int {
return this.name.length()
}
Trường hợp MyModel
một lớp java (được tạo). Bây giờ, tôi muốn truy cập nó trong mã java bình thường của tôi:
MyModel model = new MyModel();
model.bar();
Tuy nhiên, điều đó không làm việc. IDE sẽ không nhận ra bar()
phương thức và quá trình biên dịch thất bại.
Những gì công việc đang sử dụng với một chức năng tĩnh từ kotlin:
public fun bar(): Int {
return 2*2
}
bằng cách sử dụng import com.test.extensions.ExtensionsPackage
để IDE của tôi dường như được cấu hình đúng.
Tôi đã tìm kiếm trong toàn bộ tệp Java-interop từ các tài liệu kotlin và cũng đã tìm kiếm rất nhiều, nhưng tôi không thể tìm thấy nó.
Tôi đang làm gì sai? Điều này thậm chí có thể?
com.test.extensions.ExtensionsPackage
import package com.test.extensions.MyModel
?