【发布时间】:2017-08-02 04:01:36
【问题描述】:
我目前正在为一个库编写 DSL,我想使用这样的具体类型参数来提供类型元数据:
val config = Config.create()
.consumerFor<MyType>{
// consume
}
我的问题是我只能在inline 函数中使用reified 关键字,而在inline 函数中我不能使用这样的实例字段:
inline fun <reified T> consumerFor(consumer: (T) -> Unit) {
consumers.put(T::class.java, consumer)
return this
}
因为我得到一个错误:
Public-API 内联函数无法访问 non-public-API 'private final val consumer...
到目前为止,我似乎无法在最有用的地方使用具体类型参数。有解决办法吗?
【问题讨论】:
标签: java kotlin reification