scala类型系统:2) classOf与getClass方法的差异
2016-11-08 23:45
357 查看
scala类型系统:2) classOf与getClass方法的差异
前一篇在提到获取Class时的两个方法:classOf 和 getClassscala> class A scala> val a = new A scala> a.getClass res2: Class[_ <: A] = class A scala> classOf[A] res3: Class[A] = class A
上面显示了两者的不同,
getClass方法得到的是 Class[A]的某个子类,而
classOf[A]得到是正确的
Class[A],但是去比较的话,这两个类型是equals为true的
scala> a.getClass == classOf[A] res13: Boolean = true
这种细微的差别,体现在类型赋值时,因为java里的
Class[T]是不支持协变的,所以无法把一个
Class[_ < : A]赋值给一个
Class[A]
scala> val c:Class[A] = a.getClass <console>:9: error: type mismatch;
转载自:http://hongjiang.info/scala/ 推荐大家阅读下这位大哥出版的书《Scala函数式编程》
相关文章推荐
- classOf与getClass方法的差异
- 不区分不行的弱类型脚本中的有类型对象-iFrame通过document.getElementById方法访问和document.nameIframe的差异
- javascript 为系统类型添加方法
- Java在不同环境下获取当前路径的方法--this.getClass().getResource("")
- 常用的js自定义方法 -- hasClass addClass removeClass getElementsByClass
- Scala的类型系统支持鸭子类型
- getResourceAsStream与其它获取 InputString 方法的差异
- 给定数据类型的补码表示,不能简单的用取反加一的方法来求反码的,介绍下2的补码系统
- Java 基础(二) 数据类型:类(class) 其定义方法及其设计方法
- 对于名为cMemberId这类属性属性名与其set、get方法对应关系的差异
- boost 中的模板多参数根据N来提取第N个参数的类型 (tuple的实现中用到) tuple的自己的简单实现,仅带get方法
- ClassLoader和Class的getResource()方法的路径问题
- haibernate3使用的DetachedCriteria的getExecutableCriteria(session)方法的类型错误
- Java在不同环境下获取当前路径的方法--this.getClass().getResource("")
- Java在不同环境下获取当前路径的方法--this.getClass().getResource("")
- jquery里面调用getjson方法,将list类型转换为json格式数据,在页面迭代显示
- 不赞成使用类型 ServletRequest 的方法 getRealPath(String)
- Java在不同环境下获取当前路径的方法--this.getClass().getResource("")
- [置顶] 判断用户的请求类型 get or post 然后同步 或者 异步 执行 方法
- Flex进行数据类型判断:is typeof ObjectUtil.getClassInfo