Kotlin – 提取Collection中项目的父对象列表

在Kotlin中有没有一种方法可以提取Collection中项目的父对象列表。 例如,如果我们有mutableMaps: val AllPersons = mutableMapOf() val ClassAttendants = mutableMapOf() 其中Person是: data class Person( PID : Long Name: String Surname: String Father: Person?) 有没有办法从class级服务员中挑选所有(不同的)祖父?

如何生成Kotlin代码的图表和UML?

如何为Kotlin代码生成UML和图表? 我不认为获得Intellij的付费版本是我的选择。 我一直在尝试Intellij插件,我还没有find任何工作。 我想从我已经写的Kotlin代码生成图表和uml。 像这样的工具会为我节省很多时间。 谢谢

Kotlin和Android Studio非法状态exception

突然之间,我无法从AS 3.0启动应用程序。 我有Kotlin 1.2.10,Gradle同步是做的不错,但是当我启动时,我得到这个错误。 我已经尝试清理项目,使AS缓存无效…但没有什么好的。 e: java.lang.IllegalStateException: declared descriptor is not resolved to declaration: public open fun (): [ERROR : ] defined in root package[ErrorSimpleFunctionDescriptorImpl@231377cb] at org.jetbrains.kotlin.resolve.OverrideResolver.checkOverrideForMember(OverrideResolver.kt:260) at org.jetbrains.kotlin.resolve.OverrideResolver.checkOverridesInAClass(OverrideResolver.kt:66) at org.jetbrains.kotlin.resolve.OverrideResolver.checkOverrides(OverrideResolver.kt:59) at org.jetbrains.kotlin.resolve.OverrideResolver.check(OverrideResolver.kt:52) at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations(LazyTopDownAnalyzer.kt:207) at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations$default(LazyTopDownAnalyzer.kt:57) at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:112) at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:84) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:376) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:67) at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:96) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:367) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules(KotlinToJVMBytecodeCompiler.kt:132) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:162) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:63) […]

RxJava 2.0和Kotlin Single.zip()以及单曲列表

我有我无法解决的问题。 我试图将.zip(列表,)多个单打合并为一个使用Kotlin和我提供的函数作为第二个参数适合。 fun getUserFriendsLocationsInBuckets(token: String) { roomDatabase.userFriendsDao().getUserFriendsDtosForToken(token).subscribe( { userFriends: List -> Single.zip(getLocationSingleForEveryUser(userFriends), Function<Array<List>, List> { t: Array<List> -> listOf() }) }, { error: Throwable -> } ) } private fun getLocationSingleForEveryUser(userFriends: List): List<Single<List>> = userFriends.map { serverRepository.locationEndpoint.getBucketedUserLocationsInLast24H(it.userFriendId) }

Android Studio 3.0 gradle 3.0.0-beta2,打破Kotlinunit testing覆盖?

我有一个简单的Kotlin类,如下所示 class MyClass { fun justSayHello(yes: Boolean): String { if (yes) { return “Hello” } else { return “Sorry” } } } 我有我的测试(用Java写的,也可以在Kotlin上) public class MyClassTest { private MyClass myClass = new MyClass(); @Test public void testFirst() { myClass.justSayHello(true); } @Test public void testSecond() { myClass.justSayHello(false); } } 当我使用classpath ‘com.android.tools.build:gradle:3.0.0-beta2’在Android Studio 3.0 Beta-2中使用Coverage运行测试时,不会报告其覆盖范围。 但是当我使用classpath ‘com.android.tools.build:gradle:2.3.3’运行测试时,报告了100%的覆盖率。 […]

Kotlin数据类复制function不起作用

也许我错误地解释了data类的copyfunction是如何工作的,或者可能存在一个错误,但下面是copyfunction不能按预期工作的示例: 科特林: data class A { public var x: String? = null public var y: String? = null public var z: B = B.ONE } enum class B { ONE TWO THREE } Java的 A a1 = new A() a1.setX(“Hello”) a1.setY(“World”) a1.setZ(B.TWO) A a2 = a1.copy() // a2.x is null // a2.y is null // […]

如何选择在Kotlin派生类中重写哪个Java重载?

我试图在Kotlin中实现扩展java.util.AbstractList的MyIntList 。 AbstractList定义了E remove(int index)和boolean remove(Object o) 。 我使用下面的代码: class IntList() : AbstractList() { …. override fun remove(index: Int): Int { …. } } 但是这给出了一个error: return type of ‘remove’ is not a subtype of the return type of the overridden member ‘public open fun remove(element: kotlin.Int!): kotlin.Boolean defined in java.util.AbstractList’ override fun remove(index: Int): Int […]

我怎么能在Kotlin有一个复合键?

在Python中,我可以有复杂的字典键,例如: d = {} d[(1, 2)] = 3 print d[(1, 2)] # prints 3 我怎样才能在Kotlin中声明和填充这样一个Map? 编辑:我试图宣布这样的地图,但我不知道如何填充它: val my_map = HashMap<Pair, Int>()

如何在kotlin中获取当前的类文件名

在Java中我可以使用下面的代码: public class Ex { public static void main(String [ ] args) { String path = Ex.class.getProtectionDomain().getCodeSource().getLocation().getPath(); String decodedPath = URLDecoder.decode(path, “UTF-8”); } } 但在Kotlin中,主要function是在一个class级以外定义的。 我怎样才能得到它的当前文件名?

从Java类inheritance的Kotlin类是否也inheritance自Any?

从Java类inheritance的Kotlin类是否也inheritance自Any? 如果我们有一个Java类Foo和一个从Fooinheritance的Kotlin类Bar,并且我们试图在Kotlin的MutableList中使用它,那么下面的工作应该如何? class Class(items: MutableList = mutableListOf()) { var items: MutableList = items }