我是 Kotlin 的新手。我不明白为什么 Map DB 不适用于 kotlin。我试过谷歌,但没有帮助。
毕业典礼
dependencies {
compile(kotlin("stdlib-jdk8"))
implementation(group="org.mapdb", name= "mapdb", version= "3.0.7")
testCompile("junit", "junit", "4.12")
}
文件.kt
import org.mapdb.DBMaker
fun main(array: Array<String>) {
val db = DBMaker.memoryDB().make()
val map = db.hashMap("map").createOrOpen()
map.put("a", "a")
db.close()
}
错误:(7, 13) Kotlin:类型不匹配:推断的类型是字符串但什么都没有?预料之中。投影类型 HTreeMap 限制使用 public open fun put(key: K?, value: V?): V? 在 org.mapdb.HTreeMap 中定义
错误:(7, 18) Kotlin:类型不匹配:推断类型是字符串但什么都没有?预料之中。投影类型 HTreeMap 限制使用 public open fun put(key: K?, value: V?): V? 在 org.mapdb.HTreeMap 中定义
但这适用于 Java。
public static void main(String[] args) {
DB db = DBMaker.fileDB("java.db").fileMmapEnable().transactionEnable().make();
ConcurrentMap map = db.hashMap("map").createOrOpen();
map.put("a", "b");
map.put("a2", "b");
System.out.println(map);
System.out.println(map.getClass());
db.commit();
db.close();
DB db2 = DBMaker.fileDB("java.db").fileMmapEnable().transactionEnable().make();
ConcurrentMap map2 = db2.hashMap("map").open();
System.out.println(map2);
map2.forEach((o, o2) -> {
System.out.println(o+" = "+o2);
});
}