Tag: 设计

导入和锯齿实践

目前在Leiva的“Android开发者Kotlin”一书中,有一件事是我想知道的… import blah.data.Forecast import blah.domain.Forecast as ModelForecast 为什么要在每个数据和领域层创建一个“预测”类,然后别名? 为什么不简单地命名一个域名blah.domain.ModelForecast开始? 我通常尽量避免在自己的项目中使用相同的名称,即使这些类确实发生在不同的包中。 从不这样做,我有什么好处?

Kotlingenerics和错误的types推断

考虑一个普通的class Item和inheritance它的特定class Event : open class Item { fun copyFrom(item: T) { if (this is Event && item is Event) { owner = item.owner value = item.value } } } class Event : Item { open var owner = “” open var value = 0 } 感谢types推理,我们不必将物品投射到事件,我们可以直接访问owner和value 。 但是它表示该item是Ttypes,不能转换为item is Event子句。 我相信这不应该发生,因为这个条款在Java中是正确的? 编辑: 我意识到copyFrom实现应该在Event完成,但这只是为了演示types推断问题。