如何从 Option[Map[String,Seq[String]]] 知道是否包含 key ?

2023-12-25

我想知道request.body.asFormUrlEncoded包含deviceId or not.

val formValues=request.body.asFormUrlEncoded
val number = formValues.get("mobile").head
var deviceId ="deviceIdNotFound"
if(condtion) //thats the problem
deviceId= formValues.get("deviceId").head

有没有任何包含或任何其他功能的方式Option[Map[String,Seq[String]]]


我强烈建议你不要使用formValues.get("whatever"),部分原因是语法非常混乱——看起来你正在调用get当你真正打电话时,带有一个关键参数(例如在地图上)get on the Option(这是一个不安全的操作——你应该远离get on Option基本上总是)然后apply在生成的地图上(也不安全)。这种混乱是 Scala 的错,而不是你的错,但你仍然想避免陷入其中。

相反,你可以使用exists on the Option和...一起contains在地图上。这是一个稍微简化的示例:

val containsKey = formValues.exists(_.contains(key))

这将返回true仅当Option是非空的and它包含的地图有钥匙。

更好的方法是避免if-这样的声明:

val os: Option[Seq[String]] = for {
  m <- formValues
  v <- m.get(key)
} yield v

os.foreach { v => \\ do something with the value }

在这里我们最终得到一个Option包含指向的值key如果原来的Option非空并且映射包含该键。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Option[Map[String,Seq[String]]] 知道是否包含 key ? 的相关文章

  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • 玩:将表单字段绑定到双精度型?

    也许我只是忽略了一些明显的事情 但我无法弄清楚如何将表单字段绑定到 Play 控制器中的双精度型 例如 假设这是我的模型 case class SavingsGoal timeframeInMonths Option Int amount
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • Scala 解析器组合器的运算符优先级

    我正在研究需要考虑运算符优先级的解析逻辑 我的需求并不太复杂 首先 我需要乘法和除法比加法和减法具有更高的优先级 例如 1 2 3 应视为 1 2 3 这是一个简单的例子 但你明白了 我需要将更多自定义标记添加到优先级逻辑中 我可以根据此处
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • 分析 sbt 构建

    我的 sbt 构建需要很长时间 它又大又复杂 很难知道从哪里开始清理 看起来 sbt 保留了很多关于构建结构的元数据 包括相互依赖关系 命名任务 范围界定等 有了所有这些元数据 似乎很容易跳入并测量每个不同任务 及其范围 花费的时间 在代码
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • 在 Eclipse 中生成项目时出错

    我安装了 eclipse 和 SDK 大约一周了 但即使当我打开一个新的 Hello World 项目并且我想运行 eclipse 时也会显示此错误 Error generating final archive Failed to crea
  • Heroku 数据库恢复问题

    已经尝试过不同的解决方案stackoverflow以及在不同的论坛上 但没有一个能够解决确切的问题 根据文档 https devcenter heroku com articles heroku postgres import export
  • Get-ChildItem -Exclude 参数如何工作?

    Get ChildItem Exclude 参数如何工作 它遵循什么规则 Get ChildItem 的 Get Help 根本不详细 省略指定的项目 该参数的值限定 路径参数 输入路径元素或模式 例如 txt 允许使用通配符 在 Stac
  • C# 单例模式和 MEF

    我有一个关于单例模式和 MEF 的问题 我是实施 MEF 插件的新手 但还没有找到答案 是否可以通过 MEF 实现的插件仅提供一个类的一个实例 我的旧课程是这样的 region Singleton This class provide a
  • 如何使用 Azure 资源管理器在 Azure Web 应用程序中设置应用程序日志

    有谁知道如何使用 Azure 资源管理器 Powershell 或 JSON 在 Azure Web 应用程序上设置以下诊断设置 使用 json 我只能找到这些设置 requestTracingEnabled true Failed req
  • 正确允许 bash 中命令替换的分词

    我编写 维护和使用大量的 bash 脚本 我认为自己是一名 bash 黑客 并努力有一天成为一名 bash 忍者 需要了解更多awk第一的 bash 需要理解的最重要的功能 挫折之一是引号和随后的参数扩展如何工作 这是有据可查 http m
  • 从 php 在计算机上运行脚本

    我尝试从 php 执行 shell 命令失败 目标是通过互联网 例如我的手机 打开 关闭我的计算机 服务器的音乐播放器 这是我能做的 我有一个非常简单的文件 play sh 代码 xdotool key XF86AudioPlay echo
  • Spring Boot 安全性的 CORS 问题

    我使用 Spring Boot Spring Security 并希望避免任何 Cors 操作 我正在尝试这里的第二个答案 可以在 Spring 中完全禁用 CORS 支持吗 https stackoverflow com question
  • 如何使用 Django ORM 将表情符号插入 MYSQL 5.5 及更高版本

    我正在尝试将表情符号插入到我的 mysql 表中的某个字段中 我运行了 alter 命令并将排序规则更改为 utf8mb4 general ci ALTER TABLE XYZ MODIFY description VARCHAR 250
  • 计算地图上的最短路径(Google 地图、Openstreetmaps 等)

    我想计算某种已经存在的地图 API 路线上的最短路径 然后绘制它们 话虽这么说 我需要能够提取 获取尽可能多的数据 即路线的坐标 以便能够对其进行操作 我的第一个想法是使用 Google 地图 但据我了解 Google 地图 API 为我的
  • ValueError:对已关闭文件的 I/O 操作

    import csv with open v csv w as csvfile cwriter csv writer csvfile delimiter quotechar quoting csv QUOTE MINIMAL for w c
  • 带适配器回收单元的 android gridview header 解决方案

    我见过很多关于如何实现与网格的其余部分一起滚动的 gridview 标题的解决方案 其中大多数包括创建一个列表布局或相对布局 其中标题视图和网格视图全部位于滚动视图内 该解决方案存在以下问题 滚动视图不知道网格的大小 因此要克服这个问题 您
  • javascript 中一个函数覆盖另一个函数 - yii2

    我正在尝试从 gridview 中的生产模型以及sum prodqty 当选择特定产品时在文本框中显示 gridview 填充得很好 我可以看到sum prodqty javascript 警报一闪而过 但它没有传递到文本框 错误消息是 u
  • 使用 Spring 从外部 jar 自动装配类

    我正在尝试使用 Spring 构建一个独立的应用程序 不在应用程序服务器内运行 但我面临以下问题 我的独立应用程序 启用了 spring 依赖于另一个项目 捆绑为 jar 其中包含许多服务com application service 注释
  • 如何按属性值搜索

    我有以下 XML 文档
  • WebClient不支持并发I/O操作

    如何从 DownloadStringCompleted 事件中获取此错误 这不是说 已经结束了吗 我可以从其他事件中触发此事件吗 我很少遇到此错误 但偶尔会在我的 WP7 手机上发生 我有一个网络客户端 我一遍又一遍地触发它 并在完成的事件
  • 字符串如何是不可变的,我可以在“python”中替换它[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 首先我会写一个简单的程序 s Taxi output will be Taxi 然后我将第一个索引 T 替换为 S 但在我做任何事情之前字符
  • F# XML 类型提供程序常见元素

    XML 文件的 XSD 规范可以共享公共元素 如果我有多个共享公共元素的 XML 文件 是否有一种方法可以提取公共元素 而无需为每种 XML 文件类型重复代码 例如 有许多通过 XSD 定义的 XML 文件 具有共同的描述元素 但其他地方的
  • 悬停时显示内容

    div h2 class 1 1 h2 h2 class 2 2 h2 ul li a class 3 href 3 a li li a class 4 href 4 a li ul div 当我将鼠标悬停在 a 它将显示 h2 So 3会
  • 如何从 Option[Map[String,Seq[String]]] 知道是否包含 key ?

    我想知道request body asFormUrlEncoded包含deviceId or not val formValues request body asFormUrlEncoded val number formValues ge