Kotlin 错误:UserDAO_Impl不是抽象的,并且不重写UserDAO中的抽象方法findByIC(String,String)
我不熟悉使用kotlin创建项目。现在我面临这个错误: UserDAO_Impl不是抽象的,并且不重写UserDAO中的抽象方法findByIC(String,String) 我该怎么解决它Kotlin 错误:UserDAO_Impl不是抽象的,并且不重写UserDAO中的抽象方法findByIC(String,String),kotlin,Kotlin,我不熟悉使用kotlin创建项目。现在我面临这个错误: UserDAO_Impl不是抽象的,并且不重写UserDAO中的抽象方法findByIC(String,String) 我该怎么解决它 @Dao interface UserDAO { @Override @Query("SELECT * FROM User WHERE IC LIKE :UIC AND " +"Password LIKE :UPSW LIMIT 1") public fun findByIC(U
@Dao
interface UserDAO {
@Override
@Query("SELECT * FROM User WHERE IC LIKE :UIC AND " +"Password LIKE :UPSW LIMIT 1")
public fun findByIC(UIC: String, UPSW: String): UserModel
{
var getted = findByIC(UIC, UPSW)
//var user:UserModel = UserModel(getted.getName(),getted.getPsw(),getted.getEmail(),getted.getIC(),getted.getContactNo())
// user.setID(getted.getID())
return getted
}
@Insert//(onConflict = OnConflictStrategy.IGNORE)
fun insertAll(vararg users:userEntity)
//@Delete
//fun delete(user: UserModel)
}
我找到了另一个文件,包括UserDAO、Database.kt
@Database(entities = arrayOf(userEntity::class), version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun UserDAO(): UserDAO
}
这是UserDAO_Impl.java文件,红色下划线在第一行
public final class UsersDAO_Impl implements UserDAO //Problem's here
{
private final RoomDatabase __db;
private final EntityInsertionAdapter __insertionAdapterOfuserEntity;
public UsersDAO_Impl(RoomDatabase __db) {
this.__db = __db;
this.__insertionAdapterOfuserEntity = new EntityInsertionAdapter<userEntity>(__db) {
@Override
public String createQuery() {
return "INSERT OR ABORT INTO `User`(`uid`,`Name`,`Password`,`Email`,`IC`,`Contact_No`) VALUES (nullif(?, 0),?,?,?,?,?)";
}
@Override
public void bind(SupportSQLiteStatement stmt, userEntity value) {
stmt.bindLong(1, value.getUid());
if (value.getUname() == null) {
stmt.bindNull(2);
} else {
stmt.bindString(2, value.getUname());
}
if (value.getUpassword() == null) {
stmt.bindNull(3);
} else {
stmt.bindString(3, value.getUpassword());
}
if (value.getUemail() == null) {
stmt.bindNull(4);
} else {
stmt.bindString(4, value.getUemail());
}
if (value.getUic() == null) {
stmt.bindNull(5);
} else {
stmt.bindString(5, value.getUic());
}
if (value.getUcontact_no() == null) {
stmt.bindNull(6);
} else {
stmt.bindString(6, value.getUcontact_no());
}
}
};
}
@Override
public void insertAll(userEntity... users) {
__db.beginTransaction();
try {
__insertionAdapterOfuserEntity.insert(users);
__db.setTransactionSuccessful();
} finally {
__db.endTransaction();
}
}
}
public final类UsersDAO\u Impl实现UserDAO//问题在这里
{
私人最终房间数据库uuu db;
私人最终实体插入适配器uu插入适配器;
公共用户dao_Impl(房间数据库){
这是.uudb=uuudb;
此.\uuuu insertionadapter of serentity=新实体insertionadapter(\uuuu db){
@凌驾
公共字符串createQuery(){
返回“插入或中止到`User`(`uid`、`Name`、`Password`、`Email`、`IC`、`Contact_No`)值(nullif(?,0),?,?,?,?,?,?)”;
}
@凌驾
公共void绑定(SupportSQLiteStatement stmt,userEntity值){
stmt.bindLong(1,value.getUid());
if(value.getUname()==null){
stmt.bindNull(2);
}否则{
stmt.bindString(2,value.getUname());
}
if(value.getUpassword()==null){
stmt.bindNull(3);
}否则{
stmt.bindString(3,value.getUpassword());
}
if(value.getUemail()==null){
stmt.bindNull(4);
}否则{
stmt.bindString(4,value.getUemail());
}
if(value.getUic()==null){
stmt.bindNull(5);
}否则{
bindString(5,value.getUic());
}
if(value.getUcontact_no()==null){
stmt.bindNull(6);
}否则{
stmt.bindString(6,value.getUcontact_no());
}
}
};
}
@凌驾
public void insertAll(userEntity…users){
__db.beginTransaction();
试一试{
__InsertionAdapterOfSerentity.insert(用户);
__db.setTransactionSuccessful();
}最后{
__db.endTransaction();
}
}
}
您在UserDAO
中有类似的方法吗?如果不是,为什么你添加了@Override
?不,最初我没有放置@Override
我放置这是我试图解决错误,但仍然无法访问不应该覆盖我已经删除了它,但仍然有相同的问题具有相同的问题,在以前的Java项目中添加了几个Kotlin类在UserDAO
中是否有类似的方法?如果不是为什么你添加了@Override
?不,最初我没有把@Override
我把它放在这里是因为我试图解决这个错误,但仍然不能接口不应该重写我已经删除了它,但仍然有同样的问题同样的问题,在以前的Java项目中添加了一些Kotlin类