Tag: kotlin

Kotlin:未解决的参考:javaClass

我希望有人遇到了我在构建我的java / Kotlin项目时遇到的问题。 该项目与java和kotlin互操作,具有以下版本: Jdk 1.7 Kotlin 0.9.66 Gradle(包装)2.0 Kotlin已经编译好之前,我做了一些改变,即转换几个Java类到相当于kotlin版本。 这里是我看到的错误: c:\projects\myproject>gradlew :java:workspace:models:compileKotlin –stacktrace :java:workspace:models:compileKotlin w: Annotations path entry points to a non-existent location: C:\projects\myproject\java\workspace\models\annotations e: C:\projects\CustomerProfileEmail.kt: (15, 32): Unresolved reference: toLowerCase e: C:\projects\CustomerProfilePhone.kt: (34, 22): Unresolved reference: equalsIgnoreCase e: C:\projects\Account.kt: (17, 21): Unresolved reference: javaClass e: C:\projects\Account.kt: (18, 21): Unresolved reference: javaClass e: C:\projects\Account.kt: […]

在IntelliJ中Kotlin未解决的参考

我开始在IntelliJ学习Kotlin的教程 。当我尝试运行示例即 fun main(args: Array<String>) { println("lol") } 执行被暂停这个消息Error:(5, 5) Kotlin: Unresolved reference: println这是我第一次使用IntelliJ.I从来没有在一个Java项目上工作。我错过了什么? 编辑:我已经看到了另一个问题。答案是无效的我的情况。

Kotlin和Dagger2

我正在尝试将Kotlin加入到我的项目中,但是在启用Kotlin之后,我无法再创建Dagger2类。 我尝试了第二个项目,我有同样的问题(它实际上更糟糕,它抱怨Dagger2和DataBinding)。 这些是我为了启用Kotlin所做的改变: 项目build.gradle: diff –git a/build.gradle b/build.gradle index 486700c..91e4cda 100644 — a/build.gradle +++ b/build.gradle @@ -1,13 +1,15 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.kotlin_version = '1.0.5-3' repositories { jcenter() } dependencies { – classpath 'com.android.tools.build:gradle:2.3.0-alpha2' + classpath 'com.android.tools.build:gradle:2.3.0-beta1' classpath 'com.google.gms:google-services:3.0.0' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' […]

Android Studio 3.0 Canary 1:引用Kotlin类的Kotlin测试或Java测试失败

UPDATE 这个问题已经提交到这里: https : //youtrack.jetbrains.com/issue/KT-17951 更新2 这个bug已经在Android Studio 3.0 Canary 3中修复了 原始帖子 我刚刚开始玩Android Studio 3.0,我从一开始就启用了kotlin支持。 我在我的项目中写了一个非常简单的Kotlin类: data class Wallet(val coins: Int) { fun add(value: Int): Wallet = Wallet(coins + value) fun substract(value: Int): Wallet = if (coins > value) Wallet(coins + value) else throw InsufficientFundsException() } 现在我想测试这个类,首先我在Kotlin上写了一个本地运行的unittest(测试目录): class WalletTestKotlin { @Throws(Exception::class) @Test fun add() { […]

在Kotlin的表达声明

如果在Java中i++是一个表达式和i++; 是一个表达式语句,分号(;)在Kotlin中是可选的,在Kotlin中i++是一个表达式还是表达式语句?

在Kotlin中交换函数

有没有更好的方法来写java通用的交换功能,而不是java 如何在Java中编写基本的交换功能 。 有没有kotlin语言功能可以使通用交换功能更简洁直观?

Kotlin最后排序为空

什么是一个Kotlin的方式来排序空对象的列表与null为空最后? Kotlin对象进行排序: @JsonInclude(NON_NULL) data class SomeObject( val nullableField: String? ) 类似于下面的Java代码: @Test public void name() { List<SomeObject> sorted = Stream.of(new SomeObject("bbb"), new SomeObject(null), new SomeObject("aaa")) .sorted(Comparator.comparing(SomeObject::getNullableField, Comparator.nullsLast(Comparator.naturalOrder()))) .collect(toList()); assertEquals("aaa", sorted.get(0).getNullableField()); assertNull(sorted.get(2).getNullableField()); } @Getter @AllArgsConstructor private static class SomeObject { private String nullableField; }

Kotlin-allopen for android

是否有可能使用kotlin-allopen gradle插件进行android测试与mockito? 我试图把kotlin-allopen插件添加到我的build.gradle并定义注释。 buildscript { ext.kotlin_version = '1.0.6' dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version" } } apply plugin: 'com.android.application' apply plugin: 'kotlin-allopen' apply plugin: 'kotlin-android' allOpen { annotation("com.mycompany.OpenForTest") } 而这些用于注释本身 annotation class OpenForTest 这不适合我 也许我想念什么?

什么Java 8 Stream.collect等价物在标准Kotlin库中可用?

在Java 8中,有Stream.collect ,它允许在集合上进行聚合。 在Kotlin中,这不是以同样的方式存在,除了可能作为stdlib中扩展函数的集合。 但是不清楚不同用例的等价关系是什么。 例如, JavaDoc for Collectors的顶部是为Java 8编写的示例,将它们移植到Kolin时,不能在不同的JDK版本上使用Java 8类,因此可能应该使用不同的方式编写。 就在线资源展示Kotlin集合的例子而言,它们通常是微不足道的,并没有真正与相同的用例相比较。 什么是真正符合Java 8 Stream.collect记录的案例的好例子? 这里的列表是: 将名字积累到列表中 将名称累加到TreeSet中 将元素转换为字符串并连接它们,用逗号分隔 计算员工的工资总额 按部门分组员工 按部门计算工资总额 将学生划分为通过和失败 上面链接了JavaDoc中的细节。 注意: 这个问题是由作者故意写的和回答的( 自我回答的问题 ),所以对于常见的Kotlin话题的习惯性的回答是在SO中。 此外,为了澄清一些真正的古老的答案写为科特林的阿尔法,是不是今天的Kotlin准确。

在Kotlin中的Lambda表达式

考虑下面的Java类: public class SomeClass { public interface Something { void doSomething(); } public void call(Something something) {} } 在Kotlin中,我可以使用lambda表达式,如下所示: SomeClass().call { // do something } 但是如果我在Kotlin中定义下面的方法(使用相同的接口): fun call(something: Something) {} 然后这个电话: call { // do something } 会产生一个类型不匹配的错误。 为什么?