设为首页 加入收藏

TOP

scala学习手记4 - Java基本类型对应的scala类
2017-10-10 12:12:54 】 浏览:6731
Tags:scala 学习 手记 Java 基本 类型 对应

在Java中变量类型分为两大类:基本类型和引用类型。虽然在JDK1.5以后引入了自动装箱和自动拆箱机制,大大减少了我们在直接类型和引用类型之间的纠结,但仍有一些我们不得不考虑的问题。比如我在工作遇到的基本类型和其包装类型的默认值的问题,比如泛型只能使用引用类型,比如默认情况下直接类型的值不能作为对象来操作(1.toString()就不能通过编译)等等。

在scala中一切都是对象。 在scala中1.toString()这样的写法是完全可以接受的。java中的每个基本类型在scala中都有对应的封装类,此外scala的每个封装类也都对应一个富封装类。在scala中常见的直接量的类型是scala中的相应的封装类。不过scala中富封装类、封装类与java中的直接类型都是可以直接隐式转换的。

看一下下面的代码:

class ScalaInt {
  def playWithInt() {
    val capacity: Int = 10
    val list = new java.util.ArrayList[String]  
    list.ensureCapacity(capacity)
  }
}

在代码中先使用scala的封装类Int定义了一个变量capacity,而后在一个java.util.ArrayList的对象上使用这个变量作为其方法的参数。在这一步中scala的Int变量被隐式转换为java中的直接类型的变量。

此外,在前一节曾提到过scala中1.to(3)或者1 to 3这样的用法。其中的to方法不是Int类型中的方法,而是其对应的富封装类RichInt中的方法。当scala推断出Int型的值1无法满足要求时就会调用它的intWrapper方法将其转为scala.runtime.RichInt类型,而后再调用它的to方法。

在scala中直接量的封装类提供了算术运算方法,富封装类则封装了一些更常用的方法以方便开发使用。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Scalaz(42)- Free :FreeAp-A.. 下一篇Scalaz(43)- 总结 :FP就是实..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目