2016-03-11 28 views

Trả lời

23

Kotlin được thiết kế hoàn toàn tương thích với Java. Array<X>X[] cả khi chạy và từ quan điểm của Java. Các mảng Java không triển khai thực hiện Iterable, vì vậy các mảng Kotlin (hầu như giống nhau) cũng không thực hiện được.

Chúng tôi có thể làm cho mảng của chúng tôi triển khai Iterable bằng cách tạo một lớp độc lập không liên quan đến mảng Java. Tuy nhiên, để duy trì tính tương thích với Java, chúng tôi sẽ phải thực hiện chuyển đổi ngầm từ loại như vậy sang mảng Java và ngược lại. Chuyển đổi ngầm thường không phải là cách tiếp cận hoàn hảo vì chi phí hoạt động và ngữ nghĩa định danh đối tượng không rõ ràng. Ở đây họ cũng sẽ giải quyết chỉ một nửa của vấn đề, vì bạn vẫn phải tự "hộp" mảng khi gọi mã Kotlin từ Java. Đây là lý do tại sao giải pháp này không được coi là khả thi.

+17

Để thêm: [' asIterable'] (https://kotlinlang.org/api/latest/jvm/stdlib /kotlin.collections/as-iterable.html) sẽ cung cấp cho bạn một đối tượng bao bọc là 'Iterable'. –

Các vấn đề liên quan