右コード: Kotlinのコンストラクタパラメータでval/varが必要な状況はありますか?
class MainActHandler(val weakActivity: WeakReference<Activity>): Handler() {
override fun handleMessage(msg: Message?) {
val trueAct = weakActivity.get() ?: return
if (msg?.what == ConversationMgr.MSG_WHAT_NEW_SENTENCE){
val sentence = msg.obj as String?
trueAct.conversation.text = sentence
}
super.handleMessage(msg)
}
}
が解決することはできませんコード:
class MainActHandler(weakActivity: WeakReference<Activity>): Handler() {
override fun handleMessage(msg: Message?) {
val trueAct = weakActivity.get() ?: return
if (msg?.what == ConversationMgr.MSG_WHAT_NEW_SENTENCE){
val sentence = msg.obj as String?
trueAct.conversation.text = sentence
}
super.handleMessage(msg)
}
}
cannot be resolved code screenshot
唯一の違いは、 "ヴァル" では削除されていて、解決することはできません。
重要なことは、それが内部クラスだということです。
class BookInfo(convrMgr: ConversationMgr, id: String, queue: RequestQueue, queueTag:String) {
val TAG = "BookInfo"
var title: String? = ""
init {
val url = "https://api.douban.com/v2/book/$id"
// Request a string response from the provided URL.
val stringRequest = StringRequest(Request.Method.GET, url,
Response.Listener<String> { response ->
Log.d(TAG + " Response", response.substring(0))
// Parse JSON from String value
val parser = Parser()
val jsonObj: JsonObject =
parser.parse(StringBuilder(response.substring(0))) as JsonObject
// Initial book title of book properties.
title = jsonObj.string("title")
Log.d(TAG + " Book title", title)
convrMgr.addNewMsg(title)
},
Response.ErrorListener { error -> Log.e(TAG + " Error", error.toString()) })
// Set the tag on the request.
stringRequest.tag = queueTag
// Add the request to the RequestQueue.
queue.add(stringRequest)
}
}
を私はキュー」の前にVAR /ヴァルを追加した場合:
しかし
コンストラクタパラメータで "ヴァルの/ var" なしのこの1クラスが働いています。 RequestQueue "、私は提案を得るでしょう:
"コンストラクタのパラメータはプロパティとして使われることはありません。インスペクションでは、 'val'または 'var'が削除された主なコンストラクタパラメータがレポートされます。不要な「ヴァル」の用法とプライマリコンストラクタの「VAR」不要なメモリを消費します。」
私はそれについてだけで混乱しています。彼らは他の場所でのプロパティとして使用されている場合