我正在尝试使用RxJava并返回一个
Not sure how to handle insert method's return type.
Single<Long> insert(List<T> obj);
此界面由我所有的道类扩展:
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import io.reactivex.rxjava3.core.Single;
public interface MyAppDao<T> {
@Insert(onConflict = OnConflictStrategy.REPLACE)
Single<Long> insertOrReplace(T obj);
@Insert(onConflict = OnConflictStrategy.IGNORE)
Single<Long> insert(List<T> obj);
}
更新
问题是,当我只有1个insert方法时,它可以工作,但当我有2个或更多方法时(如您所见,例如插入一个列表
我的build.gradle:
plugins {
id 'com.android.application'
}
apply plugin: 'dagger.hilt.android.plugin'
android {
compileSdkVersion 30
buildToolsVersion "30.0.1"
defaultConfig {
applicationId "com.gimlite"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
dataBinding true
}
}
dependencies {
def room_version = "2.3.0-alpha01"
def work_manager_version = "2.3.4"
def nav_version = "2.1.0"
def rxjava_version = "3.0.7"
def rxandroid_version = "3.0.0";
def retrofit_version = "2.9.0";
def lifecycle_version = "2.2.0"
def timber_version = "4.7.1";
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.annotation:annotation:1.1.0'
//UI
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
//ViewModel && LiveData
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0'
implementation "android.arch.lifecycle:extensions:1.1.0"
implementation "android.arch.lifecycle:viewmodel:$lifecycle_version"
implementation "android.arch.lifecycle:reactivestreams:$lifecycle_version"
//Room
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
implementation "androidx.room:room-rxjava3:$room_version"
//Dagger Core
implementation "com.google.dagger:dagger:2.28"
annotationProcessor "com.google.dagger:dagger-compiler:2.28"
//Dagger Android
api 'com.google.dagger:dagger-android:2.27'
api 'com.google.dagger:dagger-android-support:2.27'
annotationProcessor 'com.google.dagger:dagger-android-processor:2.27'
//Hilt
implementation "com.google.dagger:hilt-android:2.28-alpha"
annotationProcessor "com.google.dagger:hilt-android-compiler:2.28-alpha"
//Retrofit
implementation "com.squareup.retrofit2:adapter-rxjava3:$retrofit_version"
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
implementation "com.squareup.retrofit2:converter-gson:$retrofit_version"
//OkHttp
implementation 'com.squareup.okhttp3:okhttp:4.2.2'
implementation 'com.squareup.okhttp3:logging-interceptor:4.2.2'
//ReactiveX
implementation "io.reactivex.rxjava3:rxjava:$rxjava_version"
implementation "io.reactivex.rxjava3:rxandroid:$rxandroid_version"
//RecyclerView
implementation 'androidx.recyclerview:recyclerview:1.0.0'
//PlayServices
implementation 'com.google.android.gms:play-services-location:17.0.0'
//Fragment Navigation
implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"
//Soap
implementation files('libs/ksoap2-android-assembly-3.6.4-jar-with-dependencies.jar') {
configurations {
compile.exclude module: 'okhttp'
}
}
//Timber (Logging)
implementation "com.jakewharton.timber:timber:$timber_version"
//Stetho
implementation 'com.facebook.stetho:stetho:1.5.1'
//TESTING
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
似乎在2.3.0-alpha01中不支持使用RxJava3类型,但在
2.3.0-alpha02中添加了支持。
具体来说,
2.3.0-alpha02
的发行说明说:
RxJava3支持:Room现在支持RxJava3类型。与RxJava2类似,您可以声明DAO方法,其返回类型是Flowable、单、也许和Compltable。此外,一个新的工件androidx.room:room-rxjava3可用于支持RxJava3。(b/152427884)
我不明白,我以为这是获取新插入行的id的方法。 刀 实体 但是构建失败,我得到的错误是指向我的类,错误是: 错误:不确定如何处理插入方法的返回类型。 我错过了什么?
我从API中得到了一个字符串列表,当我尝试插入Room Db时,我得到了一个错误- 参数的 这是它的桌子 我如何解决这个错误,或者有没有其他的方法让这个东西工作。
本文向大家介绍Mybatis返回插入主键id的方法,包括了Mybatis返回插入主键id的方法的使用技巧和注意事项,需要的朋友参考一下 在mapper的xml文件中配置 useGeneratedKeys 以及 keyProperty 返回Id即可 PS:Mybatis中insert中返回主键ID的方法 1、XyzMapper.xml 或 2、XyzMapper.java 3、要在map或c中有一
在这里,对象返回相同的hashcodes,所以为了避免在向HashMap添加数据时重写,我有一个返回false的equals方法。现在,当我使用get时,我得到了正确的数据示例obj1和obj给出了准确的值,但我的问题是,当它们的hashcode相同时,java如何区分不同的对象并从hashmap返回它们的准确值。
本文向大家介绍php插入mysql数据返回id的方法,包括了php插入mysql数据返回id的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 匹克系统应用: 以上这篇php插入mysql数据返回id的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
问题内容: 在下面的代码中,如果字符串在方法调用之前出现,为什么方法在字符串之前输出?为什么它会跳出输出方法的第一部分的形式,然后离开方法以输出字符串,然后返回到方法以输出方法的返回值? 码: 输出: 问题答案: 首先要注意的是,当对两个操作数使用a时,两个操作数之一是a ,表达式的结果是a 。 因此,在以下方法中调用表达式 您正在调用,因为它是type的变量。注意该方法如何接受单个参数。因此,