2016-03-11 19 views

Odpowiedz

23

Kotlin został zaprojektowany do pełnej współpracy z Javą. Array<X> jest X[] zarówno w środowisku wykonawczym, jak i z punktu widzenia Java. Tablice Java nie implementują Iterable, więc tablice Kotlin (które są praktycznie takie same) nie są tak dobre.

Możemy może sprawić, że nasze tablice implementują Iterable, tworząc niezależną klasę, która nie dotyczy tablic Java. Aby zachować kompatybilność z Javą, musimy wykonać niejawne konwersje z tego typu na tablice Java iz powrotem. Konwersje niejawne nie są na ogół idealnym rozwiązaniem ze względu na obciążenie związane z wydajnością i niejasną semantykę obiektów. Tutaj również rozwiązaliby tylko połowę problemu, ponieważ nadal musielibyśmy ręcznie "blokować" tablice podczas wywoływania kodu Kotlin z Javy. Właśnie dlatego takie rozwiązanie nie zostało uznane za wykonalne.

+17

Aby dodać: ['asIterable'] (https://kotlinlang.org/api/latest/jvm/stdlib /kotlin.collections/as-iterable.html) da ci otokowy obiekt, który jest "Iterable". –

Powiązane problemy