2017-08-07 108 views
1

雖然將一個相當簡單的應用程序從Java轉換爲Kotlin,但遇到了一個我無法修復的問題。Kotlin - 具有不同參數的類二級構造函數

我有KotlinScanInfo看起來像這樣在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 = .... 
    } 
} 

我可以創建類

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

但我不知道如何得到它的工作,所以我可以創建一個ScanInfo與Intent作爲參數的對象。 我嘗試與伴侶,對象,同伴對象,但我似乎無法找到正確的語法。

我錯了尋找這樣的解決方案,而使用Kotlin或我只是沒有使用正確的kotlin-constructor? 如果可能,如何創建一個帶有Intent參數的ScanInfo對象?

var result = ScanInfo(intent) 

在此先感謝。

回答

2

就是這樣:

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

OR

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 
    } 
} 
+1

你需要添加getter/setter方法太或更改知名度 –

+0

不知道OP需要getter/setter方法對他的課,但你是對的。 –

+0

使用'init'方法是最好的選擇 –

相關問題