【发布时间】:2020-09-15 06:00:57
【问题描述】:
我有一个登录 API,它接受一个字段 type 是“电子邮件”或“电话”。
我想让它们成为枚举
enum class LoginBodyType (val value: String) {
EMAIL("email"), PHONE ("phone")
}
我有一个类似于以下的数据类
class LoginBody (val type: LoginBodyType) {
var phone: String = ""
var email: String = ""
var password: String = ""
}
这样当我调用登录函数时,它会是这样的
val body = LoginBody(LoginBodyType.EMAIL)
body.email = username
body.password = password
类型将被固定为其中一个枚举,但它会作为字符串类型提交给服务器。
一种选择是使用body = LoginBody(LoginBodyType.EMAIL.value) 和class LoginBody (val type: String),但感觉好像有一个更优雅的解决方案。如果这很重要,我正在使用 Retrofit 2。
【问题讨论】:
标签: android kotlin enums retrofit2