zoukankan      html  css  js  c++  java
  • 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)
            }
  • 相关阅读:
    打开百度要用几步
    web渗透总结
    mysql之基本数据类型
    网络编程
    垃圾回收机制
    常用模块-hashlib,hmac,configparser,subprocess,xlrd,xlwt,xml,re
    常用模块-random,shutil,shevle,logging
    文件操作
    元组、字典、集合数据类型
    基本数据类型之列表类型
  • 原文地址:https://www.cnblogs.com/pengx/p/9892842.html
Copyright © 2011-2022 走看看