如果我试试这个:为什么我们不能从私有扩展类型中获得公共类型?
sealed class Attributes
data class Attributes1(
val prop1: String
) : Attributes()
private data class IMyType<A>(
val attributes: A
) where A: Attributes
typealias MyType1 = IMyType<Attributes1>
...我得到的错误:在扩张型IMyType'公' typealias自曝 '私有'。
什么是预防这个问题的原因?
注:使用科特林1.1.4
编辑1
我明白别名是什么,我的理解到位的限制的影响。
我在问的是为什么这些限制需要在那里。
如果您考虑我的示例代码...我想MyType1
(或许其他人)可以在此文件之外访问,但我不希望在该文件之外使用原始/通用IMyType
。
这不是一个合法用例吗?
请参阅我的第一个编辑。 – pleasedesktop
@pleasedesktop他们指的是同一个班级,但没有引入新的类型。我已经添加了示例来说明情况。 – BakaWaii