类型干扰失败。预期类型不匹配:在 Kotlin 和 Anko 中找到的必需字符串对 <String,String>
Type interference failed. Expected type mismatch: required String found pair<String,String> in Kotlin and Anko
我使用 kotlin
和 anko
库创建了一个数据库。我正在关注这篇文章 https://antonioleiva.com/databases-anko-kotlin/ 我正在尝试使用下面的方法在数据库块中插入数据,但出现错误
Type interference failed. Expected type mismatch: required String found pair
fun insertPerson() {
database.use {
insert(PersonTable.Name,
PersonTable.PersonName to "XX",
PersonTable.Domain to "Technology",
PersonTable.MobileNumber to "XXXXX")
}
}
object PersonTable {
val Name = "Person"
val ID = "id"
val PersonName = "person_name"
val Domain = "domain"
val MobileNumber = "mobile_number"
}
build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.williams.fourthdemo"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile "org.jetbrains.anko:anko-common:0.10.1"
compile "org.jetbrains.anko:anko-sqlite:0.10.1"
}
Insert
接受 Pair
的方法是扩展函数,可以在这个 file 中找到。 Android 工作室经常找不到这样的方法。所以导入它:
import org.jetbrains.anko.db.Database.insert
或
import org.jetbrains.anko.db.*
我使用 kotlin
和 anko
库创建了一个数据库。我正在关注这篇文章 https://antonioleiva.com/databases-anko-kotlin/ 我正在尝试使用下面的方法在数据库块中插入数据,但出现错误
Type interference failed. Expected type mismatch: required String found pair
fun insertPerson() {
database.use {
insert(PersonTable.Name,
PersonTable.PersonName to "XX",
PersonTable.Domain to "Technology",
PersonTable.MobileNumber to "XXXXX")
}
}
object PersonTable {
val Name = "Person"
val ID = "id"
val PersonName = "person_name"
val Domain = "domain"
val MobileNumber = "mobile_number"
}
build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.williams.fourthdemo"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile "org.jetbrains.anko:anko-common:0.10.1"
compile "org.jetbrains.anko:anko-sqlite:0.10.1"
}
Insert
接受 Pair
的方法是扩展函数,可以在这个 file 中找到。 Android 工作室经常找不到这样的方法。所以导入它:
import org.jetbrains.anko.db.Database.insert
或
import org.jetbrains.anko.db.*