问题标签 [kotlin-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
912 浏览

java - Kotlin 构建 Android 的问题

将 Kotlin 集成到一个使用 multidex 的大型项目中。

因此,当我尝试构建时,出现此错误:

:incrementalDesygnerDebugJavaCompilationSafeguard UP-TO-DATE :compileDesygnerDebugKotlin WARN: Failed to initialize native filesystem for Windows java.lang.RuntimeException: Could not find installation home path. Please make sure bin/idea.properties is present in the installation directory.

路径似乎配置正确,idea.properties文件似乎在那里:C:\Program Files\Android\Android Studio\bin\idea.properties

建筑物需要几分钟才能停止,所以我从 Windows 上的任务管理器手动停止它。

当我重试时 - 构建成功!

但是当我更改一行并重建它时,它再次显示相同的错误。

有时我也会得到这个:

The system is out of resources. Consult the following stack trace for details. java.lang.OutOfMemoryError: PermGen space

尝试增加各种内存设置,但可能做得不对

org.gradle.jvmargs=-Xmx8g -XX:MaxPermSize=2048m是我所拥有的gradle.properties

尝试打开和关闭即时运行。

项目在没有 Kotlin 的情况下构建良好,尝试了 Android Studio 2.0 stable、Kotlin stable、Kotlin EAP 和 AS Canary 构建。

PSgradlew assembleDebug每次都有效,直到我尝试使用 AS 构建。

编辑:尝试了相同的项目:

  • 另一台 Windows 10 PC -> 同样的事情。
  • OSX -> 可以正常工作。

有任何想法吗?

0 投票
0 回答
89 浏览

maven - 关于如何在 Maven 依赖项中“启用”Kotlin 扩展函数的任何示例?

我开始使用 Kotlin,现在尝试使用 Kotlin-JDBC 示例 ( https://github.com/kotlin-projects/kotlin-jdbc ) 并将以下依赖项添加到我的 Kotlin/Maven 项目中:

但是,IntelliJ 中没有出现任何扩展函数:

“更新”在我的 IDE 中显示为红色。关于如何解决这个问题的任何想法?

0 投票
1 回答
250 浏览

kotlin - 如何在父上下文中创建变量

我正在尝试在 Kotlin 中实现类似于这种语法的东西

现在这行不通,因为a无法在after. 我知道这是由于闭包的工作方式造成的。

我的问题是 Kotlin 中是否有某种机制允许我这样做,在闭包/扩展中创建变量,以便将它们存储在接收器对象中并可供其他闭包/扩展访问。

这是将 Groovy 脚本迁移到 Kotlin 的努力的一部分。

免责声明:这是我第一次接触 Kotlin。我已经阅读了文档,但我可能遗漏了一些东西(很多)。随意指向正确的方向

编辑:添加可编译示例

0 投票
1 回答
841 浏览

kotlin - 如何在 Kotlin 中引用匿名内部类?

我有以下扩展方法。如何引用OnGlobalLayoutListener传递给addOnGLobalLayoutListener()方法的内容?我需要将侦听器传递给该removeOnGlobalLayoutListener()方法。

0 投票
2 回答
4234 浏览

generics - 在kotlin中,如何返回由泛型类参数定义的实例

我正在尝试为针对 kotlin 1.0.3 的 Web 框架编写一个不错的 Kotlin 包装器。在那我试图将一个函数混合到请求中,让它通过使用杰克逊的 JSON 转换返回一个 bean。

所以在我的图书馆里,我有以下

但是当我这样使用代码时

它错误地说 bean 的预期值为 Any。我想要的是让我的 API 像上面那样工作,其中传递给 asDataBean 方法的通用“类”定义是返回的值的类型。

我也试过

以及将使用代码更改为

希望让它工作,但他们在使用代码时也会给出完全相同的错误。

如何让它使用由作为参数传入的类类型定义的泛型(非常类似于所有 spring api 在 java 中的工作方式)?

0 投票
2 回答
830 浏览

properties - 可变属性上的 Kotlin 扩展函数

我正在尝试在可变属性上设置扩展函数,以便可以在扩展函数中重新分配该属性。我想知道这是否可能。

我的目标是制作Date易于访问的扩展。例如:

此函数使用Calendar对象将天数添加到日期。问题是每次我必须返回一个新日期,每次使用此功能时重新分配可能会令人困惑。

我试过的:

不幸的是,这不能用于Date对象。

是否有可能做到这一点?

0 投票
1 回答
2033 浏览

android - 在 Android SDK 类上对 Kotlin 扩展功能进行单元测试

Kotlin 扩展功能很棒。但是我怎么能对它们进行单元测试呢?尤其是那些 Android SDK 提供的类(例如 Context、Dialog)。

我在下面提供了两个示例,如果有人可以分享我如何对它们进行单元测试,或者如果我真的想对它们进行单元测试,是否需要以不同的方式编写它们。

任何建议都会有所帮助。谢谢!

0 投票
1 回答
374 浏览

kotlin - “接收器对象”和“扩展接收器”之间有什么区别

根据文档https://kotlinlang.org/docs/reference/extensions.html很难说

所以我想知道接收器对象扩展接收器是否相同?还是名称取决于上下文?

0 投票
2 回答
1576 浏览

android - 我可以通过函数参数发送扩展函数吗

我在下面有一些扩展功能。

两者setEmailValidationListenersetPasswordValidationListener是相同的,除了它们分别使用的验证功能,即validateEmailFormatvalidatePasswordFormat

所以我打算将这两个函数的通用代码重构为一个通用函数如下

...它基本上只是validationFunc作为参数发送给它。

但是,我找不到将EditText.validateEmailFormatand发送EditText.validatePasswordFormatvalidationFunc函数参数的任何方法。

我怎么能做到这一点?

0 投票
3 回答
762 浏览

android - Kotlin 类 NoClassDefFoundError 崩溃

我有一个使用以下库的现有 Android 项目:

  1. 自动值
  2. 匕首2
  3. RxJava
  4. 复古λ

我正在尝试添加 Kotlin 支持,以便我可以将项目慢慢迁移到 Kotlin。这是我所做的。

  1. 添加了 Kotlin 依赖项。
  2. 将其中一个类转换为 Kt 类并移至src/main/kotlin/..package..

  3. 在源集中添加了 kotlin。sourceSets { main.java.srcDirs += 'src/main/kotlin' }

  4. 当我进行干净的构建和部署应用程序时,我得到 NoClassDefFoundError 异常。但是,如果我再次部署它就可以了。有什么建议么?我转换的类中没有任何注释,所以我没有应用kapt插件。

注意:我使用的是最新的 kotlin 1.0.4。我也禁用了即时运行。