Kotlin中的Java类对象
我正在处理一个数据库,它需要用户注册和登录。当用户注册时,数据被存储到房间数据库中。 出于注册目的,使用Kotlin代码。但是我想在Kotlin代码中使用java类的对象。Kotlin中的Java类对象,java,android,kotlin,Java,Android,Kotlin,我正在处理一个数据库,它需要用户注册和登录。当用户注册时,数据被存储到房间数据库中。 出于注册目的,使用Kotlin代码。但是我想在Kotlin代码中使用java类的对象。 因此,我的问题是,是否可以在Kotlin代码中初始化Java类的对象 例如: user.java package ... public class User { /* The credentials of a user. */ String userName, password, bID; /
因此,我的问题是,是否可以在Kotlin代码中初始化Java类的对象 例如:
user.java
package ...
public class User {
/* The credentials of a user. */
String userName, password, bID;
/* Last message */
String lastMessage;
public User(String userName, String password, String bID, String lastMessage) {
this.userName = userName;
this.password = password;
this.bID = bID;
this.lastMessage = lastMessage;
}
....
}
**register.kt:**
package ...
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_register.*
class RegisterActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_register)
// handler= DatabaseHelper(this)
val handler= DatabaseHelper(this)
User user = new user();
btnLogRegister.setOnClickListener {
onBackPressed()
}
reg_button.setOnClickListener{
handler.insertUserData(reg_bluetooth_name.text.toString(),reg_username.text.toString(),reg_password.text.toString())
Toast.makeText(this,"Values Inserted", Toast.LENGTH_LONG).show()
}
}
}
我想在寄存器.kt更改中插入java类对象
User user = new User( )
//to this line
val user = User ( )
您必须在kotlin中使用数据类,如下所示
data class User (
val userName : String = "",
val password : String = "",
val bID : String = "",
val lastMessage : String = ""
)
如何使用它
reg_button.setOnClickListener{
handler.insertUserData(User(reg_bluetooth_name.text.toString(),reg_username.text.toString(),reg_password.text.toString()))
Toast.makeText(this,"Values Inserted", Toast.LENGTH_LONG).show()
}
对于kotlin,请使用data class,要享受kotlin的更多功能,如检查可空性,请使用下面的类:
data class User (var userName : String?,var password : String?,var bID : String?,var lastMessage : String?
)
使用var可以同时获取setter和getter,而val只提供getter。请注意
`User (var userName : String?,var password : String?,var bID : String?,var lastMessage : String?)`
是主构造函数,您可以创建更多
在“活动”中,可以按代码所示强制展开值或使用默认值
reg_button.setOnClickListener{
handler.insertUserData(reg_bluetooth_name.text.toString()!,reg_username.text.toString()!,reg_password.text.toString()!)
Toast.makeText(this,"Values Inserted", Toast.LENGTH_LONG).show()
}