【问题标题】:Flutter : Use generics for http responseFlutter:使用泛型进行 http 响应
【发布时间】:2019-09-30 09:39:27
【问题描述】:

我是 Flutter 的新手。 我从 Kotlin 的 android 开发迁移到 Flutter。 我想得到 Http Url 的回复。 服务器的所有响应都是一种格式,并且 2 个变量的类型是通用的。
我是在 Kotlin 中通过这 2 个类完成的。

class BaseResponse<T> {

@SerializedName("IsSuccess")
var isSuccess: Boolean = false

@SerializedName("Item")
var item: T? = null

@SerializedName("ListItems")
var listItems: List<T>? = null

@SerializedName("ErrorCode")
var errorCode: Int? = null

其他类和响应是这样的:

data class TablesModel(var id: Long, var tableType: String, var tableCost: Int, var banner: String?, var onLineCount: Int)

我的回答是这样的:

BaseResponse<TablesModel> 

现在我想在 Flutter 中做这件事。请帮帮我。

【问题讨论】:

    标签: http generics flutter


    【解决方案1】:

    对于 Dart 中的通用 json 模型,使用 ValueObjects/Mojos 是很常见的。 您可以使用 json_serializer 和构建器自己准备模型类。或者类似的工具 https://app.quicktype.io/ 将从您的 json 响应中生成模型。

    关于泛型,正确的方法是拥有一个抽象模型类并在子类中实现不同的响应类型,或者您可以利用类型系统传递参数,以便编译器知道如何处理这些属性。

    最简单的方法是使用类型 dynamic 或 Object,如 jsonDecode dot,但您会丢失编译时错误的类型检查和 IDE 的自动完成提示。

    【讨论】:

      猜你喜欢
      • 2020-03-25
      • 1970-01-01
      • 2018-08-28
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 2021-02-07
      相关资源
      最近更新 更多