Kotlin – forEach

我是Kotlin的初学者。 你如何解释下面的代码片段? fun main(args: Array<String>) { var k = listOf<Double>(1.2,77.8,6.3,988.88,0.1) k.forEach(::println) } 这运行良好,并给出了名单,但有人可以请帮助解释如何k.forEach(:: println)真的工作?

在kotlin REPL中导入罐子

在由gradle管理的项目中,如何导入kotlin REPL中已安装的软件包? Welcome to Kotlin version 1.0.3 (JRE 1.8.0_05-b13) Type :help for help, :quit for quit >>> import com.vladsch.flexmark.* error: unresolved reference: vladsch import com.vladsch.flexmark.* ^

Kotlin外部范围

在Kotlin中创建“匿名内部类”时,我想访问调用类的范围。 Java的OuterScope.this语法相当于什么? 例如: open class SomeClass { open fun doSomething() { // … } } class MyClass { fun someFunc() { object : SomeClass() { override fun doSomething() { super<SomeClass>.doSomething() // Access the outer class context, in Java // this would be MyClass.this } } } }

如何从Kotlin / Java中运行Kotlin-Script(.kts)文件?

我注意到IntelliJ可以将.kts文件解析为Kotlin,代码编辑器将它们作为自由浮动的Kotlin文件进行拾取。 你也可以在IntelliJ中运行脚本,就像使用main方法创建Kotlin文件一样。 该脚本从上到下执行。 这个表单对于我正在开发的项目来说是完美的,只要我知道从Java或Kotlin中使用它们的简单方法。 从Java或Kotlin“运行”这些脚本的惯用方法是什么?

Android Studio 3 Kotlin版本

在开始Android Studio 3测试版2我得到这个消息: “kotlin-stdlib-1.1.4-2”库中的Kotlin运行时版本是1.1.4-2,而插件版本是1.1.4-release-Studio3.0-3。运行时库应该被更新以避免兼容性问题。” 在buildscript (项目级gradle)中,我已经将ext.kotlin_version = '1.1.4-2'改为ext.kotlin_version = '1.1.4-3' 我尝试重建和清理项目,但没有任何作品,我仍然开始得到这个消息。 Gradle项目级别: buildscript { ext.kotlin_version = '1.1.4-3' ext.app_compat_version = '26.0.1' ext.google_play_services = '11.2.0' ext.firebase_ui_version = '2.1.1' ext.retrofit_version = '2.3.0' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0-beta3' // update kotlin to 1.1.4-2 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they […]

在Gradle项目中混用Java和Kotlin,Kotlin无法找到Java类

正如标题所说,我试图在一个项目中混合使用Java和Kotlin。 这里有一个很好的例子。 混合-java-kotlin-hello-world 。 除了kotlin之外,一切正常,找不到任何在src / main / java / somepackage / SomeClass.java中找到的Java类 这是什么原因? 这是我得到的错误。 当我尝试编辑我的build.gradle时,它显示我不正确拼写kotlin,并给我错误的插件,但我从kotlins网站复制和粘贴。 我的build.gradle看起来像这样 group 'Battle-OS' version '1.0-SNAPSHOT' buildscript { repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.2-1" } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'kotlin' repositories { mavenCentral() } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.2-1" testCompile 'junit:junit:4.11' […]

Kotlin没有看到Java Lombok访问器?

使用Kotlin 1.0.0版本(在IntelliJ 15中编译)。 println(myPojoInstance.foo) 当它试图编译引用基于Lombok的POJO的代码(在IntelliJ或Gradle中)时,它会给出错误“Can not access'foo':它是'MyPojo'中的'private'。这是真的,它们都是私有的,有@Value @Builder的lombok注释。 我试着专门调用getFoo(),但它说“getFoo的未解决的参考”。 让Kotlin意识到如何处理lombok注释也许有一些窍门?

Kotlin的单个感叹号

Kotlin中的单个感叹号是什么意思? 我已经看到了几次,尤其是在使用Java API的时候。 但是我无法在文档或StackOverflow中找到它。

尝试使用Android Studio生成Kotlin应用程序的问题

-Android Studio 1.5.1,Java 1.7.0 amd64,Ubuntu 15.10 -instaled kotlin-plugin 1.0.0 创建空闲活动的新项目(API级别15) -Tools-> Kotlin->在项目中配置Kotlin – 默认选项被选中,所有模块,Kotlin插件版本1.0.0 生成build.gradle apply plugin: 'com.android.application' apply plugin: 'kotlin-android' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "kotlin.org.jjvr.kotlinapplication" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets { main.java.srcDirs += […]

GridView.LayoutParams在Kotlin中不存在?

我想使用GridView并根据文档 ,在适配器中,我可以在适配器中使用此行: imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 那么,把它转换成Kotlin,它说: 它在Java中工作,但不在Kotlin中。 那么,为什么呢? 我怎样才能在Kotlin中使用GridView.LayoutParams ?