在使用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,至於實際的原因會在之後了解後在寫一篇介紹。
可以參考
或是
或
主要是我看到了這篇