Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >包含布尔值的Scala map到包含java.lang.Boolean的Java map的转换

包含布尔值的Scala map到包含java.lang.Boolean的Java map的转换
EN

Stack Overflow用户
提问于 2012-03-09 17:34:49
回答 2查看 6.5K关注 0票数 15

我想把一个带有布尔值的scala map转换成一个带有java.lang.Boolean值的java map (为了互操作性)。

代码语言:javascript
运行
AI代码解释
复制
import scala.collection.JavaConversions._

val a = Map[Int, Boolean]( (1, true), (2, false) )
val b : java.util.Map[Int, java.lang.Boolean] = a

失败,出现以下错误:

代码语言:javascript
运行
AI代码解释
复制
error: type mismatch;
found   : scala.collection.immutable.Map[Int,scala.Boolean]
required: java.util.Map[Int,java.lang.Boolean]
val b : java.util.Map[Int, java.lang.Boolean] = a

JavaConversions隐式转换可以很好地处理在相同类型上参数化的容器,但不知道Boolean和java.lang.Boolean之间的转换。

我可以使用JavaConversions魔术来做这个转换吗,或者有没有一种简洁的语法来做这个转换而不使用该包中的隐式转换?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-09 18:23:24

虽然JavaConversions会将Scala Map转换为java.util.Map,而Scala隐式地将scala.Boolean转换为java.lang.Boolean,但Scala不会执行两次隐式转换来获得您想要的类型。

Boolean提供了一个用于显式转换的box方法。

代码语言:javascript
运行
AI代码解释
复制
val b: java.util.Map[Int, java.lang.Boolean] = a.mapValues(Boolean.box)

如果您经常在代码中执行此操作,则可以为所有Map[T, Boolean]定义自己的隐式转换。

代码语言:javascript
运行
AI代码解释
复制
import scala.collection.JavaConversions._

implicit def boolMap2Java[T](m: Map[T, Boolean]): 
  java.util.Map[T, java.lang.Boolean] = m.mapValues(Boolean.box)

val b: java.util.Map[Int, java.lang.Boolean] = a
票数 14
EN

Stack Overflow用户

发布于 2012-03-09 17:55:25

scala.collection.JavaConversions不会帮助您解决scala.Booleanjava.lang.Boolean的问题。不过,通过使用scala.Predef中的boolean2Boolean方法,以下方法将起作用

代码语言:javascript
运行
AI代码解释
复制
val a = Map[Int, Boolean](1 -> true, 2 -> false)
val b: java.util.Map[Int, java.lang.Boolean] = a.mapValues(boolean2Boolean)

或者,您可以使用Java的Boolean(boolean value)构造函数:

代码语言:javascript
运行
AI代码解释
复制
val a = Map[Int, Boolean](1 -> true, 2 -> false)
val b: java.util.Map[Int, java.lang.Boolean] = 
         a.mapValues(new java.lang.Boolean(_))

或者,您可以只声明第一个映射来使用Java引用类型:

代码语言:javascript
运行
AI代码解释
复制
val a = Map[Int, java.lang.Boolean](1 -> true, 2 -> false)
val b: java.util.Map[Int, java.lang.Boolean] = a
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9638492

复制
相关文章
Java map转scala map
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159872.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
2.6K0
scala的map操作
新建一个不定参数的 map: var cs = mutable.Map.empty[String, String] 对其进行赋值: cs += (key -> value) 读取里面所有的 key,value: cs.keys cs..values 判断 map 是否为空: cs.isEmpty 显示某个 key 的 value: value = cd(key)
机器学习和大数据挖掘
2019/07/02
9500
Map.containsKey方法——判断Map集合对象中是否包含指定的键名
本示例首先使用HashMap类创建Map集合对象,并向集合中添加几个元素,然后调用containsKey方法查询是否包含指定的键名。
故久
2019/09/29
4.1K0
Spring不能将包含key值为null的map集合转换成JSON
# Spring不能将包含key值为null的map集合转换成JSON Null key for a Map not allowed in JSON Spring不能将包含key值为null 的 map集合转换成 JSON # 1. 问题描述 编写代码进行测试的时候,控制台报出如下错误 org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Null key for a Map not
taixingyiji
2022/07/25
2.6K0
java map 转string_java-将Map <String,Object>转换为Map <String,String>
Map map = new HashMap(); //Object is containing String
全栈程序员站长
2022/08/25
13K0
java对象转换map
  今天在项目研发的过程中遇到这样一个需求,在一个统一处理类的入口要将所有后面处理流程需要用到的值统一塞进上下文的MAP对象中,这其中就包括了一持久层的DO对象。   如果对于对象进行逐个遍历是可以实现这个需求,但代码量比较大,所以一直在寻求一种比较合理的处理方式。后来发现可以通过反射的方式实现这个功能。
全栈程序员站长
2022/06/30
9110
Scala中的Map使用例子
Map结构是一种非常常见的结构,在各种程序语言都有对应的api,由于Spark的底层语言是Scala,所以有必要来了解下Scala中的Map使用方法。 (1)不可变Map 特点: api不太丰富 如果是var修饰,引用可变,支持读写 如果是val修饰,引用不可变,只能写入一次值,其后只读 var a:Map[String,Int]=Map("k1"->1,"k2"->2)//初始化构造函数 a += ("k3"->3)//添加元素 a += ("k4"->4)//添加元素 a +=
我是攻城师
2018/05/14
3.2K0
scala(十八) Map
Map 集合 Scala中的Map和Java类似,也是一个散列表,它存储的内容也是键值对(key-value)映射,Scala中不可变的Map是有序的,可变的Map是无序的。 不可变Map 创建不可变Map val map=Map("a"->1,"b"->2,"c"->3) 或者 val map=Map(("a",1),("b",2),("c",3)) 更或者混合使用 val map=Map(("a",1),"b"->2,"c"->3) 只有是二元元组就可以。 支持的Api scala> map. +
用户1483438
2022/04/20
2800
map转map_java获取map的值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
4.5K0
map转map_java获取map的值
Java的map和Go的map的区别
我们先说Java 的HashMap 跟Go map的实现的共同点,1.都是利用 键值对的 key 得到一个 hashCode,算出桶的位置,什么是桶 其实就是一个数字,类似这样的图
人生海海山山而川
2021/07/29
1.3K0
java map()_java之map的基本介绍
在讲解Map排序之前,我们先来稍微了解下map。map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。其中这四者的区别如下(简单介绍):
全栈程序员站长
2022/09/08
6860
java中Map转换List
假设: Map<Key,Value> map; 使用如下方法即可转换成List: List<Value> list = new ArrayList<Value>(map.values());
夏洛克的猫
2018/10/18
11K0
Scala基础——Map(映射)
Scala映射(Map)是一组键/值对的对象。键在映射中是唯一的,但值不一定是唯一的。映射也称为哈希表。映射有两种,不可变的和可变的。默认情况下,Scala使用不可变映射(Map)。如果要使用可变集合(Map),则需要明确导入scala.collection.mutable.Map类
羊羽shine
2019/08/12
4240
java中的map
Map是Java中的一个集合接口,用于表示键值对映射关系。Map接口提供了一组方法,可以实现添加、获取、更新和删除键值对,而且在键上不能有重复元素。
堕落飞鸟
2023/04/01
7700
java对象转map_java中实现map与对象相互转换的几种实现
public static Object mapToObject(Map map, Class> beanClass)
全栈程序员站长
2022/08/18
2.1K0
java 把对象转成map_Java对象转换成Map[通俗易懂]
public static void main(string[] args) throws exception{
全栈程序员站长
2022/08/25
2.8K0
Java对象转换Map(工具类)[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133630.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/27
2.8K0
java map是有序的吗_java中map遍历
在调用接口A的时候,传给接口A的参数是通过调用接口B返回然后再重新封装的。接口A是需要验签,也就是说传给接口A的所有参数一定要是按照接口B返回的固有顺序。
全栈程序员站长
2022/11/09
1.7K0
scala List immutable.Map[String,Any]]的排序问题
帮同事处理List[scala.collection.immutable.Map[String,Any]]的排序问题
全栈程序员站长
2021/05/19
7230
json转map JavaBean(对象)、Map、JSONObject 之间的相互转换
json转map,map转对象…… 话不多说,直接上代码 import java.lang.reflect.Method; import java.text.ParseException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.json.JSONException; import org.json.JSONObject; /** * * 1:将JavaBean转换成Ma
小黑同学
2021/12/06
2.4K0

相似问题

如何将包含列表的Java Map转换为Scala map

118

包含Map选项的Scala隐式

26

Java LinkedHashMap到scala Map的转换和递归转换

11

Java -迭代包含列表的Map

30

在scala中解析包含map的json

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档