第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,我们先看一下变量界定的代码package com.dt.scala.type_parameterizationclass Pair_NoPerfect[T <: Comparable[T]](firs
千家信息网最后更新 2026年10月31日第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析
我们先看一下变量界定的代码
package com.dt.scala.type_parameterizationclass Pair_NoPerfect[T <: Comparable[T]](first: T,second:T){ def bigger ={ if (first.compareTo(second)>=0) first else second }}object View_Bounds { def main(args: Array[String]): Unit = { val pair = new Pair_NoPerfect("Spark","Hadoop") println(pair.bigger) }}如果我们要传入的参数是整数,编译器会报错

说明Int不是Comparable的子类。但是Int可以通过隐式转换转成RichInt ,它是Comparable子类。
那么我们可以使用视图界定(view bound)来实现
package com.dt.scala.type_parameterizationclass Pair_NoPerfect[T <: Comparable[T]](first: T,second:T){ def bigger ={ if (first.compareTo(second)>=0) first else second }}// 将变量界定符号中的:换成% ,那么就变成了视图界定 <% class Pair_Better[T <% Comparable[T]](first: T,second:T){ def bigger ={ if (first.compareTo(second)>=0) first else second }}object View_Bounds { def main(args: Array[String]): Unit = { val pair = new Pair_Better(1,2) // 隐式转换 Int -> RichInt println(pair.bigger) }}
变量
子类
视图
代码
参数
可以通过
整数
符号
编译器
会报
编译
实战
源码
应用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技财经
互联网 的科技创新
互联网科技ppt模板
赫美联合互联网科技
伴你行互联网科技有限公司
大白互联网科技
互联网科技大会案例
互联网科技素材视频竖屏
互联网巨头投资的硬核科技
中国的互联网科技企业的崛起
互联网科技项目计划书材料类
受益于互联网科技的高速发展
岳阳华臻互联网科技有限公司
中国航天科技大学国际工业互联网
互联网科技的全部知识
陕西九四连强互联网科技有限公司
互联网科技收购价值
第三届互联网大会安防黑科技
互联网科技自媒体灵感
知域互联网科技有限公司官网
互联网科技网
科技股互联网
科技类的互联网平台
华中科技有哪些互联网大佬
互联网科技人工智能实验室
梅州GM互联网络科技有限公司
中天科技中国工业互联网
神州科技互联网有限公司
杭州融税互联网科技有限公司
互联网大会出现的黑科技