Kotlin - 具有不同参数

时间:2017-08-07 09:48:02

标签: android constructor kotlin

虽然将一个相当简单的应用程序从Java转换为Kotlin,但我遇到了一个'问题',我似乎无法修复。

我有一个类ScanInfo在Java中看起来像这样(没有getter和setter)

public class ScanInfo {
    private String source;
    private String label_type;
    private String data;

    public ScanInfo(Intent intent) {
        ... Get Info from intent and assign the values ...
        this.source = ...
        this.label_type = ....
        this.data = ....
    }
}

现在在Kotlin我可以创建班级

class ScanInfo (var source: String, var label_type: String, var data: String)

但我不知道如何让它工作,所以我可以用Intent作为参数创建一个ScanInfo对象。 我尝试使用伴侣,对象,伴侣对象,但我似乎无法找到正确的语法。

使用Kotlin或者我没有使用正确的kotlin-constructor时,我是否错误地寻找这样的解决方案? 如果可能,我如何创建一个以Intent为参数的ScanInfo对象?

var result = ScanInfo(intent)

提前致谢。

1 个答案:

答案 0 :(得分:2)

那就是:

class ScanInfo(intent: Intent) {
    private val source = intent.source
    private val labelType = intent.labelType
    private val data = intent.data
}

class ScanInfo(intent: Intent) {
    private val source: String
    private val labelType: String
    private val data: String

    init {
        source = intent.data
        labelType = intent.data
        data = intent.data
    }
}