设为首页 加入收藏

TOP

Scala模式匹配常用
2019-08-15 00:11:22 】 浏览:74
Tags:Scala 模式 匹配 常用

今天在工作中遇到的几个小问题,总结一下:

1.因为业务需要调用PHP的接口,获取到的返回体需要做一段逻辑处理,然而某个字段接收到的参数是io.serializable类型,字段的类型不是预期的string类型,当时有点懵逼,因为是用Scala的match case做模式匹配,也没多想,幸亏同事提示一番,才想起String其实实现了serializable接口,所以尽管返回的是io.serializable类型,但是也可以用string来接收;

2.调用PHP接口,返回体用JsonObject接受,但是有些许字段是null,本能反应用Gson转换为对象,用Scala的Option去接收可能为null的字段,但是程序运行就会报一个with no args的错误;

解决方法:用case class接收PHP接口返回,对于可能为null的字段不用加Option修饰,先不用管这个case class ,而是在JsonObject对字段加上isJsonNull的判断,后面Build thrift返回体的时候,这些字段定义为Option类型的Build进去就好了;

其实现在一想,用case class对字段进行判断获取也是可以的,明天实验一番;

 val uesrName:Option[String] = response.get("data").getAsJsonObject.get("userName").isJsonNull match { case true => None case false => Some(response.get("data").getAsJsonObject.get("userName").getAsString) }

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇[转] Scala 中的异步事件处理 下一篇Scala字节数组转换为数字

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目