JavaConversions 提供了一系列隐式方法,可以在Java集合和最接近的相应Scala集合之间进行转换,反之亦然 . 这是通过创建实现Scala接口的包装器并将调用转发到底层Java集合或Java接口,将调用转发到底层Scala集合来完成的 .

JavaConverters 使用pimp-my-library模式将 asScala 方法“添加”到Java集合中,并将 asJava 方法添加到Scala集合中,这些方法返回上面讨论的相应包装器 . 它比 JavaConversions (自2.8以来)更新(自版本2.8.1起)并使Scala和Java集合之间的转换显式化 . 与大卫在他的回答中所写的相反,我建议你习惯使用 JavaConverters ,因为你编写代码会产生很多隐式转换的可能性要大得多,因为你可以控制那个会产生很多隐式转换的代码 . 发生:你在哪里写 .asScala 或 .asJava .

这是 JavaConverters 提供的转换方法:

Pimped Type | Conversion Method | Returned Type

=================================================================================================

scala.collection.Iterator | asJava | java.util.Iterator

scala.collection.Iterator | asJavaEnumeration | java.util.Enumeration

scala.collection.Iterable | asJava | java.lang.Iterable

scala.collection.Iterable | asJavaCollection | java.util.Collection

scala.collection.mutable.Buffer | asJava | java.util.List

scala.collection.mutable.Seq | asJava | java.util.List

scala.collection.Seq | asJava | java.util.List

scala.collection.mutable.Set | asJava | java.util.Set

scala.collection.Set | asJava | java.util.Set

scala.collection.mutable.Map | asJava | java.util.Map

scala.collection.Map | asJava | java.util.Map

scala.collection.mutable.Map | asJavaDictionary | java.util.Dictionary

scala.collection.mutable.ConcurrentMap | asJavaConcurrentMap | java.util.concurrent.ConcurrentMap

—————————————————————————————————————————————————————————————————————————————————————————————————

java.util.Iterator | asScala | scala.collection.Iterator

java.util.Enumeration | asScala | scala.collection.Iterator

java.lang.Iterable | asScala | scala.collection.Iterable

java.util.Collection | asScala | scala.collection.Iterable

java.util.List | asScala | scala.collection.mutable.Buffer

java.util.Set | asScala | scala.collection.mutable.Set

java.util.Map | asScala | scala.collection.mutable.Map

java.util.concurrent.ConcurrentMap | asScala | scala.collection.mutable.ConcurrentMap

java.util.Dictionary | asScala | scala.collection.mutable.Map

java.util.Properties | asScala | scala.collection.mutable.Map[String, String]

但是,要直接从Java使用转换,最好直接从 JavaConversions 调用方法;例如 . :

List javaList = new ArrayList(Arrays.asList("a", "b", "c"));

System.out.println(javaList); // [a, b, c]

Buffer scalaBuffer = JavaConversions.asScalaBuffer(javaList);

System.out.println(scalaBuffer); // Buffer(a, b, c)

List javaListAgain = JavaConversions.bufferAsJavaList(scalaBuffer);

System.out.println(javaList == javaListAgain); // true

java建一个conversion_Scala中的JavaConverters和JavaConversions之间有什么区别?相关推荐

  1. list申请java,java把一个list中的内容添加到另一个list中 FPGA编程问题:有多个.v文件与module,把他们加到......

    导航:网站首页 > java把一个list中的内容添加到另一个list中 FPGA编程问题:有多个.v文件与module,把他们加到... java把一个list中的内容添加到另一个list中 ...

  2. [java]判断一个数字中是否含有某个数字

    [java]判断一个数字中是否含有某个数字 例如判断一个数字中是否含有2 代码: public class panduan {public static boolean test(int n) {wh ...

  3. 在一个java源文件中只能定义_10在Java的一个源文件中可以定义多个类。

    [单选题]一组常量和抽象方法的集合可以定义成一个 ( ) [判断题]3.当定义一个类时没定义构造方法,则系统自动产生一个构方法. [填空题]JAVA源程序中,跨越多行的注释只需在开始和结尾处用____ ...

  4. Gradle中的实现和编译之间有什么区别?

    本文翻译自:What's the difference between implementation and compile in Gradle? After updating to Android ...

  5. 媒体查询中“屏幕”和“仅屏幕”之间有什么区别?

    本文翻译自:What is the difference between "screen" and "only screen" in media queries ...

  6. Java判断一个字符串中是否包含中文字符工具类

    Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比 ...

  7. sql语句和java的关系_java中Statement 与 PreparedStatement接口之间的关系和区别

    Statement 和 PreparedStatement之间的关系和区别. 关系:PreparedStatement继承自Statement,都是接口 区别:PreparedStatement可以使 ...

  8. java nonnull_java – Objects :: nonNull和x – x!= null之间有什么区别吗?

    考虑以下课程: import java.util.Objects; import java.util.function.Predicate; public class LambdaVsMethodRe ...

  9. Java和HTML有什么关系_jsp和html之间有什么区别?

    jsp和html之间有什么区别?最简单的区别就是,HTML能直接打开,jsp只能发布到Tomact等服务器上才能打开.下面本篇文章就来给大家介绍一下JSP和HTML之间的区别,希望对大家有所帮助. H ...

最新文章

  1. Spring Cloud Gateway 突发高危漏洞,下一代云原生网关恰逢其时?
  2. Mac 环境 下使用Charles 抓包Http/Https请求
  3. SPI接口比IIC速度快的理解
  4. node.js express 启用 https
  5. 大型网站技术架构(四)--网站的高性能架构(转)
  6. jdbc连接rac的oracle数据库
  7. 机器学习当道,还在使用基于词典的文本挖掘方法么,过时啦!
  8. 虎年继续做朋友,再来认识一下云和恩墨
  9. 机器学习的常见分类及常用算法
  10. 数据脱敏:k-anonymity,l-diversity,t-closeness
  11. PS如何快速更换logo颜色
  12. 无损音乐ape格式怎么转为ogg格式
  13. html写小星星,写小星星的句子
  14. ADP-L610-Arduino
  15. Selenium PO模式实现
  16. mysql 5.7修改密码
  17. word无法验证服务器,Win8系统打开office文件提示“无法验证此产品的许可证”如何解决...
  18. [pwn]格式化字符串:0ctf 2015 login writeup
  19. 计算机学什么怎么学会的,学电脑先学什么 新手怎么学电脑
  20. a55计算机主板,a55主板最新的报价大全【图解】

热门文章

  1. expect 批量修改服务器用户密码
  2. ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-前言与目录(持续更新中...)
  3. 重学数据结构007——二叉查找树
  4. T-SQL SUM Functions
  5. 数据科学与大数据技术的案例_主数据科学案例研究,招聘经理的观点
  6. 如何评价强gis与弱gis_什么是gis的简化解释
  7. leetcode 766. 托普利茨矩阵
  8. spark 架构_深入研究Spark内部和架构
  9. 捷克 签证_一位捷克开发人员构建了可在您的浏览器中直接运行的语音合成器
  10. 用js检测文本框中输入的是否符合条件并有错误和正确提醒