Kotlin中的列表或数组的产品

我试图find一种方法来获得列表或数组的产品,而不使用“重复”或Kotlin上的任何循环,但经过一些研究,我找不到任何类似的东西。 在Python中这样的东西是: >>> reduce(lambda x, y: x*y, [1,2,3,4,5,6]) output: 720

Android Studio 3.0 Kotlin无法正常工作

我最近安装了Android Studio 3.0,并使用Kotlin开始了一个新项目。 自开始项目以来,突出显示和代码完成的kotlin插件一直在正常工作。 不过,几天前我从开始这个项目开始就第一次关闭了Android Studio,现在当我重新打开它时,代码完成和突出显示已经停止工作,Android Studio向我显示以下exception: 2017-11-05 19:38:03,424 [ thread 19] ERROR – on.CompletionProgressIndicator – Resolver for ‘completion/highlighting in org.jetbrains.kotlin.idea.caches.resolve.NotUnderContentRootModuleInfo@3a2816ac for files GameMainActivity.kt for platform JVM’ does not know how to resolve ModuleProductionSourceInfo(module=Module: ‘app’) java.lang.AssertionError: Resolver for ‘completion/highlighting in org.jetbrains.kotlin.idea.caches.resolve.NotUnderContentRootModuleInfo@3a2816ac for files GameMainActivity.kt for platform JVM’ does not know how to resolve ModuleProductionSourceInfo(module=Module: ‘app’) […]

Java lambdatypes推断在Kotlin中没有像预期的那样工作

为什么在没有Collectors.toList()的显式types参数的情况下,这段Java代码不能在Kotlin中编译? 有没有更习惯的方式来做到这一点? // works List folders = Files.walk(Paths.get(args[0])) .filter(it -> it.toFile().isDirectory()) .map(it -> it.toAbsolutePath().toString()) .collect(Collectors.toList()); // does not compile – resulting type is `MutableList..List?` which is not compatible to `List` val folders: List = Files.walk(Paths.get(args[0])) .filter { it.toFile().isDirectory } .map { it.toAbsolutePath().toString() } .collect(Collectors.toList()) // compiles val folders: List = Files.walk(Paths.get(args[0])) .filter { it.toFile().isDirectory } […]

Java的Kotlin:是否可以为空?

当从Java访问Kotlin类时,是否可以在运行时分辨特定字段是否可以空? 此外,是否有可能判断一个类是否是一个数据类? 即使是一个猜测就足够我的目的。 使用reflection也很好。

如何在Kotlin中使用Ebean的@DbEnumValue?

背景 我试图把这个从Java的Ebean例子转换成Kotlin: http ://ebean-orm.github.io/docs/mapping/extension/dbenumvalue 以下是示例Java代码: public enum Status { NEW(“N”), ACTIVE(“A”), INACTIVE(“I”); String dbValue; Status(String dbValue) { this.dbValue = dbValue; } // annotate a method that returns the value // in the DB that the enum element maps to @DbEnumValue public String getValue() { return dbValue; } } 科特林 我期待Kotlin的下列内容: // ERROR: This annotation is […]

与Android和桌面项目共享一个Kotlin模块

我有一个使用LibGDX游戏框架的游戏。 目前我所针对的平台是Desktop(PC,Mac,Linux),通过独立于平台的jar和Android。 该项目托管在https://github.com/NoxHarmonium/project-whiplash如果您需要,请随时查看。 大部分代码位于一个名为core的模块中,完全由Kotlin编写。 该模块已链接到桌面和Android项目中。 这适用于Android版本7.1+和桌面。 对于所有其他版本的Android,我在匿名函数上得到一堆java.lang.NoClassDefFoundErrorexception: val objectObservable = this.observableCache.computeIfAbsent(assetRef, fun(assetRef: AssetRef): Observable { return Async.start(fun(): T { … }).observeOn(this.eventLoopScheduler) }) exception示例: java.lang.NoClassDefFoundError: com.projectwhiplash.utils.assets.LibGdxDataManager$objectMapFromYaml$objectMapObservable$1 这似乎是由于Kotlin默认的目标(1.8)与旧版Android支持的JVM级别(1.6)不兼容。 我可能是错的,但这解释了为什么最新版本的Android工作,因为它支持更高版本的JVM。 解决方案应该像强制Kotlin发射1.6版本的JVM字节码一样简单,但我似乎无法解决。 如果你直接将Kotlin编译成Android,这似乎是通过使用kotlin-android Gradle插件来处理的。 不幸的是,我不能使用这个插件的核心模块,因为它不应该有任何Android的依赖。 我尝试使用https://kotlinlang.org/docs/reference/using-gradle.html#compiler-options中提到的构建设置来覆盖JVM版本,如下所示: compileKotlin { kotlinOptions { jvmTarget = “1.6” } } 然而,无论我把哪个Gradle文件放进去,它似乎都不起作用。事实上,当我尝试使用Intellij时,显示出“Can not resolve symbol’kotlinOptions’”错误。 Kotlin团队可能已经改变了一些东西,文档还没有更新。 我可以在Intellij模块设置中手动覆盖Kotlin设置,但每次同步gradle项目时都会覆盖Kotlin设置,这不是一个好的长期解决方案。 该项目旨在独立于IDE。 有谁知道如何设置核心模块,以最大限度地兼容老版本的Android? 我目前有最低的API级别设置为9,因为这是目前的LibGDX默认,但我愿意设置这个更高,如果太难以目标如此低的API级别。 编辑1: 我只是提取由核心模块生成的jar文件,并使用javap工具检查类文件。 我在随机类文件上运行以下命令 java -verbose […]

Android Kotlin创建自定义popup菜单

我试图创建类似这样的popup式菜单,单击Android中使用Koltin的按钮视图。 我搜索了SOF,Google没有find任何建议。 任何人都可以提供一个示例代码来实现它使用kotlin。

Firebase连接在Kotlin上创建用户错误

ı尝试与kotlin的firebase创建用户。 但是我总是得到错误敬酒Theese是我的import: import android.content.Intent import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.text.TextUtils import android.view.View import android.widget.Toast import com.google.firebase.auth.FirebaseAuth import kotlinx.android.synthetic.main.activity_create_user.* 这里剩下的我的代码类createUser:AppCompatActivity(){private var fbsignup:FirebaseAuth = FirebaseAuth.getInstance() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_create_user) submitButton.setOnClickListener { val email = userSaveText.text.toString().trim() val password = passSaveText.text.toString().trim() if (TextUtils.isEmpty(email)) { Toast.makeText(this, “enter a mail “, Toast.LENGTH_SHORT).show() return@setOnClickListener } if (TextUtils.isEmpty(password)) { Toast.makeText(this, […]

在Android Studio中将代码从Java转换为Kotlin

任何人都可以解释如何用Android Studio中的Kotlin替换现有的Java代码?

任何人都可以告诉我kotlin编译器是如何工作的? 它的架构是什么?

我已经开始学习Kotlin了,这真的很棒,但是在Kotlin编译器的工作方式上遇到了一个问题。