如何使响应不可变

How to make response immutable

从 api 调用我得到 class ItemsResponse(val items: List<Items>) : PaginationResponse() 其中 abstract class PaginationResponse(var pagination: Pagination = Pagination())。问题是,PageableResponse 和一般的所有响应都不应该是可变的。我唯一利用这种可变性的地方是在单元测试中模拟响应时,比如:

val itemsResponse = ItemsResponse(items = itemsList).apply {
    pagination = anyNeededPaginationState
}

我想让 PaginationResponse 中的 pagination 不可变,但我似乎不知道如何模拟所需的响应。使用当前的模拟方法,我得到 Val cannot be reassigned 错误,我不知道如何在不重新分配的情况下模拟响应。

通过子class 构造函数传递参数。

abstract class PaginationResponse(val pagination: Pagination = Pagination())

class ItemsResponse(val items: List<Items>, pagination = Pagination()) : PaginationResponse(pagination)

val itemsResponse = ItemsResponse(items = itemsList, pagination = anyNeededPaginationState)