Kotlin — 如何轉換ArrayList to Array

JLin
3 min readMar 4, 2020

--

在使用Google map當中的一個addPolyline的時候會遇到一個問題,以前java

GoogleMap mMap = ....;Arraylist latLngList = new ArrayList();
latLngList.add(...)
latLngList.add(...)
latLngList.add(...)
latLngList.add(...)
LatLng[] latLngs = new LatLng[20];
latLngList.toArray(latLngs)

PolylineOption option = new PolylineOption().add(latLngs)

就可以完成產生一個polylineOption,但是在Kotlin呢?

剛起步kotlin的人可能會疑惑該怎麼辦?

看了一下 kotlin 中polylineOption的source code是這樣

public final PolylineOptions add(LatLng... var1) {
this.zzdx.addAll(Arrays.asList(var1));
return this;
}

這個參數轉kotlin是

vararg LatLng!

這該怎麼辦? kotlin 中無法定義

val data : Int[] = { 1,2,3}

我們實際了解他其實是之前java中的 LatLng… 多物件的寫法

val latLngList = ...PolylineOptions().add(*latLngList.toTypedArray()

其實可以透過一個簡單的toTypedArray,但沒有這麼簡單,研究了很久後必須加上一個 * ,將之轉成傳統array,至於實際的原因會在之後了解後在寫一篇介紹。

可以參考

或是

主要是我看到了這篇

--

--

JLin
JLin

Written by JLin

台中 / JAVA / Android /Kotlin / Kotlin Native 對於Kotlin衍生的JVM等技術 Compose for web / desktop / Ktor Server,生成式AI (Gemini/OpenAI)各式應用, 都有小興趣

No responses yet