我的项目中有多个对象类,需要将一个对象转换为另一个对象。
我尝试创建一个通用util并开始对其进行转换,代码开始增长,并且无法在单个文件中进行管理。
然后,我开始创建类似于此的单个transformer
类,
/** This transforms [Square] to [Rectangle] **/
object SquareToRectangleTransformer {
fun transform(square: Square): Rectangle {
checkNotNull(square.side) { missing ("side") }
val length = square.side
val breadth = square.side
return Rectangle(length, breadth
}
}
现在我的项目有多个类似于上面的变压器类,现在我发现这种方法是一种反模式,因为它会引起类爆炸问题。
我搜索了其他替代方案,例如插件或依赖库,它们可以用更少的代码和更少的this answer interesting为我完成这项工作。
Kotlin中有任何类似的图书馆可以为我完成这项工作吗?
最佳答案
我建议您为将要进行的每个转换创建扩展功能。对我来说,这是一种非常清晰,不错的方法。几乎所有的kotlin stdlib都以相同的方式编写。例:
fun Square.transform(): Rectangle {
val length = square.side
val breadth = square.side
return Rectangle(length, breadth)
}
}
您将可以将此函数作为成员函数调用:
val square = Square(4)
val rectangle = square.transform()
您也可以避免
checkNotNull(square.side) { missing ("side") }
,如果您将类型设为代表不可为空的那一面:data class Square(
val side: Int
)
关于kotlin - 在Kotlin中将一个对象转换为另一个对象的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57840998/