如题,使用枚举直接接收参数,使用 json 反序列化,对于意外值会接收成 null ,如此实际的参数已经丢失了,只能判断是否为 null 。
enum Sex {
MALE(1),
FEMALE(0)
}
像这样的枚举值,如果参数为 2 、3 或其他任意值,在不进行自定义序列化时,接收会报错,但是自定义序列化后,只有 null 以及合法枚举。
预期的目标,使用参数校验,提示“性别可选值 [ 1 ,0 ] ”。
使用原始类型接收,可以实现,但如何直接使用枚举类型实现。
现在测试结果,可以在运行时动态添加一个 UNKNOWN 类型的枚举值,用于映射非预期值。
但感觉太重了。
或者换个问题,参数使用原始值,还是枚举值较好
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.