Интересно, есть ли способ проверить, была ли инициализирована переменная lateinit
.Как проверить, была ли инициализирована переменная «lateinit»?
import javafx.application.Application
import javafx.event.EventHandler
import javafx.geometry.Insets
import javafx.geometry.Pos
import javafx.scene.Scene
import javafx.scene.control.Button
import javafx.scene.control.ComboBox
import javafx.scene.layout.VBox
import javafx.stage.DirectoryChooser
import javafx.stage.Stage
import java.io.File
class SeriesManager() {
lateinit var seriesDir: File
val allSeries by lazy {
seriesDir.listFiles().map { it.name }.toTypedArray()
}
}
class SeriesManagerUI : Application() {
override fun start(primaryStage: Stage) {
val sm = SeriesManager()
val setSeriesDirBtn = Button("Change all series location").apply {
onAction = EventHandler {
sm.seriesDir = DirectoryChooser().apply {
title = "Choose all series location"
}.showDialog(primaryStage)
}
}
val allSeriesList = ComboBox<String>().apply {
promptText = "Select a series from here"
isDisable = // I want this to be always true, unless the SeriesManager.seriesDir has been initialized
}
val setCurrentEpisodeBtn = Button("Change the current episode")
val openNextEpisode = Button("Watch the next episode")
val layout = VBox(
setSeriesDirBtn,
allSeriesList,
setCurrentEpisodeBtn,
openNextEpisode
).apply {
padding = Insets(15.0)
spacing = 10.0
alignment = Pos.CENTER
}
primaryStage.apply {
scene = Scene(layout).apply {
minWidth = 300.0
isResizable = false
}
title = "Series Manager"
}.show()
}
}
fun main(args: Array<String>) {
Application.launch(SeriesManagerUI::class.java, *args)
}
Может быть, что вам нужно сделать свойство Nullable (тип изменения в файл ''?) И просто проверить, если она равна нулю вместо ? –
Ну, я на самом деле пробовал это, и он будет делать трюк, однако мне придется отредактировать var 'allSeries' для' seriesDir? .listFiles() ?. map {it.name} ?. toTypedArray() ', что не очень «красиво» –
Вы можете сделать обычную старую нулевую проверку, а умный листинг сделает ее красивее. 'if (seriesDir! = Null) {' 'allSeries = seriesDir.listFiles(). Map {it.name} .toTypedArray()' '}' –