gpt4 book ai didi

java - 错误 "Required:String Found:String?"Kotlin 和 Android Studio

转载 作者:行者123 更新时间:2023-11-30 05:07:32 32 4
gpt4 key购买 nike

正如标题所暗示的,我在“var myNote = Note(id, title, note, ServerValue.TIMESTAMP)”行的“id”下有一条红色下划线错误“必需:找到的字符串:字符串?” Kotlin 和 Android Studio

class MainActivity : AppCompatActivity() {
var mRef:DatabaseReference? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

val database = FirebaseDatabase.getInstance()
mRef = database.getReference("Notes")

add_new_note.setOnClickListener {
showDialogAddNote()
}
}

fun showDialogAddNote() {
val alertBuilder = AlertDialog.Builder(this)

val view = layoutInflater.inflate(R.layout.add_note, null)

alertBuilder.setView(view)

val alertDialog = alertBuilder.create()
alertDialog.show()

view.btnSaveNote.setOnClickListener {
val title = view.etTitle.text.toString()
val note = view.etNote.text.toString()

if (title.isNotEmpty() && note.isNotEmpty()) {
var id = mRef!!.push().key

var myNote = Note(id, title, note, ServerValue.TIMESTAMP)
mRef!!.child(id).setValue(myNote)
alertDialog.dismiss()
} else {
Toast.makeText(this, "Empty", Toast.LENGTH_LONG).show()
}
}
}
}

这是我的 Notes.kt 类

package com.example.gearoidodonovan.books

import java.util.*

class Note (var id:String, var title:String, var note:String, var timestamp: MutableMap<String, String>) {
}

最佳答案

Kotlin 迫使您高度注意可空性。

你的 Note 实体说它需要一个不可为 null 的 id:String,显然 mRef!!.push().key返回一个 String? 意味着它是一个可为 null 的字符串。您可以通过双击来解决此问题,即 mReff!!.push().key!!

另一个提示是 ALT+ENTER 这些 Kotlin 相关错误,它会为您提供双响。

关于java - 错误 "Required:String Found:String?"Kotlin 和 Android Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54311577/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com