タブレット用プログラムの書き止め

android OS & iPadOS の記録。

【kotlin】 コンストラクタのコード自動変換問題

2024-02-17 04:49:19 | Android studio 日記

クラスを配列にして条件でファイル名を並び替えをさせていたが取り出すと””空文字なってしまった。
JavaのコードをKotlinに自動変換してエミュレータで実行したがエラーは出ていなかった。

しかし、正常にデータを取り出せない。

Kotlinのコンストラクタの説明を読むがよく分からない。
仕方ないのでコードを書き換えて試す。

class MyNumbersInString() {
    var numbersData: Int


    MyNumbersInString(f: File) {} を書き直す。

    constructor(a: type) : this() {}
    constructor(a: type, b: type) : this() {}
    constructor(a: type, b: type, c: type) : this() {}
}

class Sub() {
    var list = ArrayList< MyNumbersInString >()
    var f: File

省略
    list.add( MyNumbersInString(f) )

}

constructor(引数) : 戻り { コード }  こんな感じ?

 

コードの一部分。

class MyNumbersInString() {
 
    private var _absName = String() 
    val absName: String
        get() = _absName
    private var _name1 = String()
    val name1 : String
        get() = _name1

    //省略

   // MyNumbersInString(f: File) { 無変換だったものを

    constructor(f: File) : this() { // これに書き換えると正常になった
        _absName = f.absolutePath
        _name1 = f.name

 

    //省略
    }
}


class Dummy() {

    private var _fileNameList = ArrayList<MyNumbersInString>()

省略
        _fileNameList.add( MyNumbersInString(file) )

省略

        _fileNameList[0].absName // constructor()に書き換えで正常にデータを取り出せた

}

自動変換も万能ではない事が分かった。
異常が出たら検証をしつつ、コード変更を行う。

 


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする