问题标签 [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 投票
4 回答
9100 浏览

kotlin - Kotlin 列表尾函数

我正在尝试在其中找到尾部功能,List<T>但找不到任何功能。我最终这样做了。

有一个更好的方法吗?

0 投票
4 回答
16624 浏览

enums - Kotlin:如何使用扩展函数扩展枚举类

我正在尝试String使用以下函数扩展枚举类型的类,但无法在调用站点使用它,如下所示:

我在这里做错了什么?

0 投票
1 回答
28286 浏览

kotlin - How to extend a data class with toString

I have created a data class

as later in my program, I need the string representation of this data class I tried to extend the toString method.

The problem here is, it does not allow extending (overriding) the toString function, as it is not applicable to top-level functions.

How to properly override/extend the toString method of a custom dataclass?

0 投票
1 回答
625 浏览

rx-java - 我可以创建一个 Kotlin 扩展方法来将 rxJava 订阅添加到 CompositeSubscription 吗?

我一直在玩 Kotlin/RxJava 并尝试创建一个扩展方法来将 a 添加Subscription到 a CompositeSubscription,它的工作方式如下:

这是我迄今为止的尝试:

它编译并运行没有错误,但似乎并没有真正SubscriptionCompositeSubscription. 难道我做错了什么?

0 投票
1 回答
478 浏览

kotlin - Kotlin:如何在事务类的上下文中运行服务方法?

我想在服务方法中定义数据库调用,但让它们在Transaction类的上下文中执行,而不在服务本身中打开连接,这样我就可以在同一个事务中包含多个服务调用。

我正在寻找类似的东西,但无法完全弄清楚。

有没有办法做到这一点?

我知道我可以像这样将事务实例传递给服务:

...但我希望有一个更优雅的模式。

0 投票
2 回答
812 浏览

kotlin - 在 V1.0.1 中无法识别 Kotlin 扩展属性

重新访问 Kotlin 1.0.1 之前版本的一些代码,我的扩展属性似乎不再有效。事实上,它仍然可以,但我不能再覆盖它。

考虑这个类:

如果您有以下扩展,则在 Kotlin 1.0.1 之前,这将起作用:

loggerName 默认情况下会采用相关实例的类名。目前,在这种情况下,loggerName 已正确分配给TestClass,但是我无法覆盖它。

这是 Kotlin 新版本中的意外错误还是新限制?我搜索了Kotlin - Extensions,但只发现它应该可以工作。

技术

我正在使用 Kotlin 插件版本 1.0.1-release-IJ143-32 在 IntelliJ IDEA 2016.1 中对此进行测试。

编辑1:

TestClass 甚至无法识别此属性,但是当访问 TestClass 的实例(例如:)时,instanceOfTestClass.loggerName它会被识别。

0 投票
1 回答
6349 浏览

kotlin - 如何组织 Kotlin 扩展方法

假设我有一些“MyClass”的扩展方法。我的问题是,组织/存储这些方法的最佳实践是什么?是否应该将它们简单地放入“MyClassExtensions”Kotlin 文件中?

我试图将这些方法封装在一个类中,但是在导入类之后,我似乎无法弄清楚如何使用/访问扩展方法。

编辑:为了澄清,我不是在寻求帮助来调用包含扩展方法的文件。我在询问存储/组织此类方法的最佳实践/方法。IE。应该将它们简单地放入 kotlin 文件中,还是应该将它们封装在一个类中。我来自 Java 背景,所以我习惯于在类中存储东西。

0 投票
1 回答
415 浏览

nullable - Kotlin- 扩展功能和平台类型?

我想添加两个扩展函数来ResultSet获取一个值作为LocalDate.

问题是getDate()返回 a Date!,显然如果没有?.之前的调用,我会得到一个 null 错误toLocalDate()。但是任何使用这个扩展的人都必须使用结果作为 aLocalDate?而不是 a LocalDate!

为了一致性起见,有什么方法可以维护平台类型?并让扩展函数的用户决定是否允许为空?还是我错误地将其视为不便而不是功能?

0 投票
2 回答
73934 浏览

java - 在使用 Kotlin 的方法中抛出异常

我正在尝试将此 Java 代码转换为 Kotlin:

问题是,当我实现这些方法时,我得到了类似的东西

我发现谈论在 Kotlin 中引发异常的唯一信息是THIS

除了去掉问号,因为没有必要,为什么不IOException一样处理呢?处理这种情况的最佳方法是什么?

0 投票
1 回答
279 浏览

java - 如何在 Kotlin 中创建一个在类上运行的扩展函数?

想象一下,我有这行代码:

我希望能够这样写:

我该怎么做呢?

我试过了

但它给了我编译器错误。