1. ホーム
  2. kotlin

[解決済み] Kotlinのメンバー宣言に期待する

2022-02-27 02:25:45

質問

コンストラクタでクラス変数を代入したいのですが、「メンバー宣言を期待しています」というエラーが出ます。

class YLAService {

    var context:Context?=null

    class YLAService constructor(context: Context) {
        this.context=context;// do something
    }
}

解決方法は?

Kotlinでは、次のようにコンストラクタを使用することができます。

class YLAService constructor(val context: Context) {

}

さらに短く

class YLAService(val context: Context) {

}

先に何か処理をしたい場合。

class YLAService(context: Context) {

  val locationService: LocationManager

  init {
    locationService = context.getService(LocationManager::class.java)
  }
}

どうしても2次コンストラクタを使いたい場合。

class YLAService {

  val context: Context

  constructor(context: Context) {
    this.context = context
  }

}

これは、よりJavaの変形に似ていますが、より冗長です。

を参照してください。 コンストラクタに関するKotlinのリファレンス .