当前位置: 首页 > 知识库问答 >
问题:

如何使用Map实例创建scala case类实例

甘永春
2023-03-14
 case class UserFeature(uid: String = null,
                     age: String = null,
                     marriageStatus: String = null,
                     consumptionAbility: String = null,
                     LBS: String = null,
                     interest1: String = null,
                     interest2: String = null,
                     interest3: String = null,
                     interest4: String = null,
                     interest5: String = null,
                     kw1: String = null,
                     kw2: String = null,
                     kw3: String = null,
                     topic1: String = null,
                     topic2: String = null,
                     topic3: String = null,
                     appIdInstall: String = null,
                     appIdAction: String = null,
                     ct: String = null,
                     os: String = null,
                     carrier: String = null,
                     house: String = null
                          )
Map("uid" -> "4564131",
    "age" -> "5",
    "ct" -> "bk7755")

共有1个答案

明正德
2023-03-14

使用null表示缺少的字符串值不是一个好主意。改用选项[String]

case class UserFeature(uid: Option[String] = None,
                       age: Option[String] = None,
                       marriageStatus: Option[String] = None,
                       ...

完成这些操作后,可以在映射上使用get检索值。

UserFeature(map.get("uid"), map.get("age"), map.get("marriageStatus") ...)

映射中存在的值将为some(value),缺少的值将为noneoption类有许多有用的方法可以安全地处理可选值。

 类似资料:
  • 问题内容: 我有一个注释,该注释根据此惯用法接收“动态”参数,即接口类型的参数。简而言之: 现在,要评估此参数,我需要创建提供的实现的实例。上面链接的答案是在运行时执行的。但是,我正在按照本教程编写“实时”(即编译时)注释处理器。使用类型时,必须考虑它们可能尚未编译。本教程以以下方式处理该问题(在这种情况下,检索类型的名称): classTypeMirror.asElement(); qualif

  • 问题内容: 我正在创建一个类及其子类,需要在其中调用父级的静态方法以返回子级实例。 问题答案: 该静态方法被调用,其值是类对象,子类,你把它称为后的构造。因此,您可以使用实例化它:

  • 我们已经使用Google Guice框架进行依赖注入。我需要在Java创建一个接口的多个insatnce。 执行从这里开始:下面代码中的KFHRecordValidator.java类: process类具有RecordValidationHelper类的引用,并且注入是通过构造函数进行的。iRecordValidationService.java是一个具有validate方法的接口。 类处理器有

  • 问题内容: 我有几个函数需要精确的参数类型(又名): 我这样使用它们,效果很好: 但是我想知道是否有可能使代码更简洁,即 如果是这样,我应该放什么呢? 编辑: 1)我使用和作为简化示例。在我的实际代码中,我使用自定义类。 2)我需要知道我的函数中的确切类型(类),所以我不能 提前使用谢谢 问题答案: 您可以使用或者,这是双方共同的超类型和。 但是,泛型是不必要的: 等同于 删除后。 对于输入参数具

  • 我正在试验反射库发现:https://code.google.com/p/reflections/ 我试图实现的是扫描项目中的一个包,然后创建在该包中找到的给定类型的所有子类的实例。我使用库的方式是正确的,因为子类型返回以下内容: [class identifiers.DNSLookup,class identifiers.AliasChecker,class identifiers.Google

  • 问题内容: 我正在尝试做一些Java注释魔术。我必须说,我仍在追赶注释技巧,并且某些事情对我来说还不太清楚。 所以…我有一些带注释的类,方法和字段。我有一个方法,它使用反射对类进行一些检查并将一些值注入到类中。这一切都很好。 但是,我现在面临的情况是我需要一个注释实例(可以这么说)。所以…批注与常规接口不同,您不能对类进行匿名实现。我知道了。我在这里浏览了有关类似问题的一些帖子,但似乎无法找到所需