Я надеюсь, что кто-то может помочь, я пишу, переходя из java в Kotlin, и хочу иметь свойство, которое оно инициализируется в блоке init, у которого есть настраиваемый набор, но не является необязательным.Нестандартное свойство с пользовательским сеттером Kotlin
Вот мой код ниже, однако это предупреждение, что тег должен быть инициализирован
Я хотел бы сделать это lateInit, но это означает, что он должен быть факультативным (который я не хочу)
class SkiMarker(mapView: MapView, tag:Tag) : Marker(mapView){
var tag:Tag <- ERROR here
set(tag){
this.tag = tag
if(tag != null){
this.mPosition = GeoPoint(tag.lat,tag.lon)
}
}
init {
this.tag = tag
this.mPosition = GeoPoint(tag.lat,tag.lon)
val window = MyInfoWindow(mapView,tag)
this.infoWindow = window
window.subject.observeOn(AndroidSchedulers.mainThread()).subscribe { it ->
setIconForTracking(it)
}
}
}
Большое спасибо заранее за любые комментарии
Незначительное примечание, но, возможно, стоит упомянуть соглашение Котлина - использовать параметр «значение» и параметр setter. –