kotlin - 嵌套在泛型父类中的类构造函数的函数参考
问题描述
如果我有
sealed class Foo<A> {
data class Bar<A>(val value: Int): Foo<A>()
}
并且我想Bar<Int>
使用运算符将构造函数称为隐式 lambda ::
,然后以下均不被接受为有效语法:
Foo<Int>::Bar<Int>
::Foo.Bar<Int>
::(Foo.Bar<Int>)
(编译器告诉我这个语法是为将来使用而保留的)。
如果我将嵌套类构造函数显式导入到作用域中,我可以引用它
import com.package.Foo.Bar
这使我可以::Bar
为构造函数和Bar<Int>::value
属性 getter 编写代码。但是我必须对每个嵌套的构造函数都这样做,这有点破坏了使用::
运算符来节省打字的优势。
有没有我遗漏的符号可以让我避免导入所有嵌套的类名和构造函数?
编辑
我最初的示例不涉及泛型,结果证明我在我正在处理的实际代码中遇到的问题过于简单化了,它确实使用了泛型。
事实证明,对于没有泛型参数的嵌套类,Foo::Bar
符号实际上是有效的,所以我最初的问题有一个错误的前提。但是,不可能在泛型类中创建对构造函数的可调用引用。这记录在以下错误报告中:https ://youtrack.jetbrains.com/issue/KT-15952
解决方案
外卡进口呢?
import com.package.Foo.*
推荐阅读
- postgresql - 分页不适用于春季批处理中的 JpaPagingItemReader 和 jpql 请求
- multithreading - 使用kombu时gevent中的ConcurrentObjectUseError
- web-scraping - 我正在尝试使用 requests_html 获取图像链接(.jpg)。谁能帮我?
- c# - How can i use sum ? with more then 2 key
- javascript - 如何在 VueJS 中实现具有动态行跨度的自定义表?
- json - 如何通过键入 localhost 访问 JSON 文件中另一个表中的特定表?
- python-3.x - Python 3.7 自动生成空字典
- php - 为什么我的 PHP date_diff 不能正常工作?
- spring - 如何获取 SpringBoot REST API 服务的响应时间?
- reactjs - Reack hook useState(初始化函数)调用了两次,甚至根本不改变数据?