Tag: kotlin

Kotlin maven插件编译顺序

我有一个关于kotlin-maven插件的问题:如何确定编译顺序? 我的意思是:kotlin编译器必须先来吗? 它理解java代码吗? java编译器不能理解kotlin代码,所以我想它会检查字节码,但为此,kotlin的字节码必须存在,所以有人必须确定kotline编译器必须在javac之前编译它的代码。 例如:我有Java类A,依赖于Kotlin类B和B也依赖于A. 我是否必须在maven插件中手动执行某些操作,方法是在java maven编译器之前声明它。

尝试monot kotlin

Java 8没有提供Try monad。 这对功能样式中的异常处理很有用。 kotlin有没有准备好实现? 还是我应该执行一个?

Kotlin:我们可以在Kotlin中使用@订阅EventBus(GreenRobot)吗?

我的onEvent在一个片段中,如下所示,在我的Kotlin函数中捕获活动的认证。 但是,我无法得到onEvent触发。 @Subscribe fun onEvent(event: AuthenticationEvent) { if (event.isAuthenticated) { startFragment(signInFragment, SignInFragment.TAG) } else { startFragment(signOutFragment, SignOutFragment.TAG) } } 在我的build.gradle文件中,我添加了这个 compile 'org.greenrobot:eventbus:3.0.0' 有什么我需要做得到这个触发器?

Kotlin编译器是否始终保留字节码中的参数名称?

在kotlin-reflect ,类KParameter具有可空name ,其KDoc表示: 该参数在源代码中声明的名称;如果参数没有名称或名称在运行时不可用,则为null 。 无名参数的例子包括用于成员函数的这个实例,用于扩展函数或属性的扩展接收器, 在没有调试信息的情况下编译的Java方法的参数 等等 。 它讲述了众所周知的事实,即Java并不总是在字节码中包含参数名称,但它没有提到Kotlin类,尽管还有其他一些类。 我可以假设Kotlin编译器保留为Kotlin源代码中的函数声明的参数名称吗? (特别是,我需要构造函数参数名称)。

Kotlin Android编译

我得到这个错误,不知道为什么: Error:Execution failed for task ':app:compileDebugKotlin'. > java.io.IOException: java.lang.ArrayIndexOutOfBoundsException: 0 我认为这与android gradle插件版本不兼容kotlin gradle插件版本有关。 我没有升级任何东西,它以前工作。 但突然之间,这只是开始出现,并阻止编译过程。 有没有公​​共场所,我可以找到最新的Android工作室插件基于最新的Kotlin插件? 感谢进步,J StackTrade: * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDebugKotlin'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) […]

如何使用kotlin-test编写Kotlin单元测试?

我正在尝试使用Kotlin测试我的代码。 当试图导入kotlin.test包时,什么都不显示。 我必须先在某处添加依赖项吗? 我怎样才能运行我的单元测试?

Kotlin的Proguard混淆关键字

我正在使用这个关键字与我的android-java项目中的proguard 混淆 : do if for int new try byte case char else goto long this void break catch class const final float short super throw while double import native public return static switch throws boolean default extends finally package private abstract continue strictfp volatile interface protected transient implements instanceof synchronized 但是我正在切换到Kotlin ,现在的问题是我应该使用哪些关键字作为Kotlin? 我已经找到了,但我应该使用所有这些?

在Kotlin声明空集合

如何在Kotlin中为listOf , listOf和setOf声明一个空集合? 我已经在下面声明了变量: val occupations = mapOf(Pair("Malcolm", "Captain"), Pair("Kaylee", "Mechanic")) val shoppingList = listOf("catfish", "water", "tulips", "blue paint") val favoriteGenres = setOf("Rock", "Classical", "Hip hop") 我想检查这些收集是否为空。

Kotlin加载外部类?

我知道使用URLClassLoader可以加载不包含在项目src文件夹中的外部Java文件。 我想知道是否有一个使用Kotlin的等效方法? 谢谢。

用kotlin扩展属性的java.lang.VerifyError

我试图像这样用kotlin扩展Java类的数字类型属性: // Java class public class Person { private Number old; public Number getOld() { return old; } public void setOld(Number a) { this.old = a; } } 和我的Kotlin代码: // Kotlin code var Person.age: Number inline get() = old inline set(value) { old = value } fun main(args: Array<String>) { val person = Person() person.age […]