猿问

在java/kotlin中通过inject()将变量传递给类构造函数

我的主要课程设置如下:


class MyView : View() {    


    val controller: PollController by inject()

    etc

}

我想传入一个变量(如路径文件的字符串)


class PollController : Controller() {


val currentData = SimpleStringProperty()

val stopped = SimpleBooleanProperty(true)


val scheduledService = object : ScheduledService<DataResult>() {

    init {

        period = Duration.seconds(1.0)

    }

    override fun createTask() : Task<DataResult> = FetchDataTask()

}


fun start() {

    scheduledService.restart()

    stopped.value = false

}


inner class FetchDataTask : Task<DataResult>() {


    override fun call() : DataResult {

        return DataResult(SimpleStringProperty(File(**path**).readText()))

    }


    override fun succeeded() {

        this@PollController.currentData.value = value.data.value // Here is the value of the test file

    }


}

}


[DataResult 只是一个 SimpleStringProperty 数据类]


这样 PollController 类中的函数可以引用路径文件。我无法弄清楚注射是如何工作的;@Inject 始终保持红色,添加构造函数会抛出 Controller() 对象返回


不负相思意
浏览 589回答 2
2回答
随时随地看视频慕课网APP

相关分类

Java
我要回答