如何从 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 ? 的相关文章

  • 如何在ArrayList中的特定位置插入对象

    假设我有一个大小为 n 的对象的 ArrayList 现在我想在特定位置插入另一个对象 假设在索引位置 k 大于 0 且小于 n 并且我希望索引位置 k 处及其之后的其他对象向前移动一个索引位置 那么有没有什么方法可以直接在Java中做到这
  • Java,顺序流在哪个线程中执行?

    在阅读有关流的文档时 我遇到了以下句子 attempting to access mutable state from behavioral parameters presents you with a bad choice if you
  • 是否可以使用 Java 读写 Parquet,而不依赖 Hadoop 和 HDFS?

    我一直在寻找这个问题的解决方案 在我看来 如果不引入对 HDFS 和 Hadoop 的依赖 就无法在 Java 程序中嵌入读写 Parquet 格式 它是否正确 我想在 Hadoop 集群之外的客户端计算机上进行读写 我开始对 Apache
  • Hashset - 创建 Set 后使对象相同

    如果我们在 HashSet 中添加两个不同的对象 可变的 然后通过调用 setter 更改对象的值 使它们相同 则大小仍然是 hashSet 的 2 我无法理解其原因 public static void main String args
  • java 中的梵文 i18n

    我正在尝试使用来自互联网的示例 ttf 文件在 java 中使用 i18n 进行梵文 印地文 我可以加载资源包条目 还可以加载 ttf 并设置字体 但它不会根据需要呈现 jlabel 它显示块代替字符 如果我在 Eclipse 中调试 我可
  • 在 Eclipse 3.5 上安装旧版 TestNG 插件时出现问题

    我正在尝试在 eclipse 3 5 上安装 TestNG 5 11 并获得以下信息 eclipse buildId unknown java version 1 6 0 19 java vendor Sun Microsystems In
  • H2数据库:如何进行加密保护,而不暴露文件加密密钥

    我们在服务器模式下使用Java H2数据库 因为我们不希望用户访问数据库文件 为了对数据库文件添加更多保护 我们计划使用 AES 加密 将 CIPHER AES 添加到数据库 URL 以防存储被盗 但是 每个用户在连接时还需要提供文件保护密
  • 如何在 Eclipse 中获得完全限定的类名?

    有没有一种快速方法可以在 Eclipse 中单击 Java 类并获取其完全限定名称 或将其复制到剪贴板 2016年6月29日编辑 正如 Jeff 所指出的 您只需要执行以下第二步 1 Double click on the class na
  • 从 CLI 部署 Maven 项目?

    在 IDE 中构建并运行良好 cd home thufir NetBeansProjects HelloMaven JAVA HOME usr lib jvm java 8 openjdk amd64 home thufir local s
  • 是否可以手动检查 LocateRegistry 是否存在?

    I 已经发现 https stackoverflow com a 8338852 897090一种安全的方式获得LocateRegistry 即使注册表尚不存在 Registry registry null try registry Loc
  • ActiveMQ JNDI 查找问题

    尝试使用 JNDI 运行以下 ActiveMQ http activemq apache org jndi support html http ActiveMQ 20JNDI 并且我的 jboss server node lib 文件夹中有
  • 了解Kafka流groupBy和window

    我无法理解 kafka 流中的 groupBy groupById 和窗口的概念 我的目标是聚合一段时间内 例如 5 秒 的流数据 我的流数据看起来像 value 0 time 1533875665509 value 10 time 153
  • 如何向数据框spark添加标题和列?

    我有一个数据框 我想在其中添加标题和第一列 手动 这是数据框 import org apache spark sql SparkSession val spark SparkSession builder master local appN
  • 获取 Future 对象的进度的能力

    参考 java util concurrent 包和 Future 接口 我注意到 除非我弄错了 只有 SwingWorker 实现类才能启动冗长的任务并能够查询进度 这就引出了以下问题 有没有办法在非 GUI 非 Swing 应用程序 映
  • 无法连接到docker中的elasticsearch容器

    我正在尝试使用 docker 的官方 elasticsearch 镜像 我遵循了本指南 https www elastic co guide en elasticsearch reference current docker html但是当
  • 开发者环境-如何调用/消费其他微服务

    背景 我的环境 Java Play2 MySql 我在 Play2 gt S1 S2 S3 上编写了 3 个无状态 Restful 微服务 S1 消耗来自 S2 和 S3 的数据 因此 当用户点击 S1 时 该服务会异步调用 S2 S3 合
  • 在java中执行匿名pl/sql块并获取结果集

    我想执行匿名 PL SQL 并需要获取结果集对象 我得到了可以通过在 PL SQL 块内使用游标来完成的代码 但 PL SQL 块本身将以文本形式来自数据库 所以我无法编辑该 PL SQL 块 并且它只会返回两个值 其列名始终相同 它将返回
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea
  • 我怎样才能限定我不“拥有”的自动装配设置器

    要点是 Spring Batch v2 测试框架具有JobLauncherTestUtils setJob与 Autowired注解 我们的测试套件有多个Job类提供者 由于这个类不是我可以修改的东西 我不确定如何限定它自动连接的作业 每个
  • 使用 urllib 编码时保持 url 参数有序

    我正在尝试用 python 模拟 get 请求 我有一个参数字典 并使用 urllib urlencode 对它们进行 urlencode 我注意到虽然字典的形式是 k1 v1 k2 v2 k3 v3 urlencoding 后参数的顺序切

随机推荐

  • 在 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