Scala的构造方法是什么
发表于:2025-02-20 作者:千家信息网编辑
千家信息网最后更新 2025年02月20日,本篇内容介绍了"Scala的构造方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Scala的
千家信息网最后更新 2025年02月20日Scala的构造方法是什么
本篇内容介绍了"Scala的构造方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
Scala的构造方法非常灵活(具体怎么个灵活法这里不多说了),但随之而来的是重载构造方法的麻烦。
Scala的构造方法:重载的麻烦
例如定义新异常类型。一般来说,自己定义的异常都属于checked异常,大都从Exception继承过来,所以也大都需要定义多个构造方法。如果用Java来定义,没什么好说的,重载就行,但是用Scala的话就有点麻烦。Scala规定所有重载的构造方法都必须调用或间接调用默认构造方法,所以必须使用如下的方法。
MyException(message: String, cause: Throwable) extends Exception(message, cause) { def this(message: String): = this(message, null) def this(cause: Throwable): = this(null, cause) def this: = this(null, null) }
当然,这样是可以工作的,但是仔细看看Throwable的实现就会发现如果传入的cause为null话会导致异常栈的丢失。而且最恶心的是Throwable没有提供相应的setter/getter,我们能做的就是调用构造方法。
所以我就想出了下面的怪招。
object SpcException { def apply(message: String, cause: Throwable): Exception = (new SpcException1(message, cause)).asInstanceOf[Exception] def apply(message: String): Exception = (new SpcException2(message)).asInstanceOf[Exception] def apply(cause: Throwable): Exception = (new SpcException3(cause)).asInstanceOf[Exception] def apply(): Exception = (new SpcException4).asInstanceOf[Exception] } trait SpcException class SpcException1(message: String, cause: Throwable) extends Exception(message, cause) with SpcException class SpcException2(message: String) extends Exception(message) with SpcException class SpcException3(cause: Throwable) extends Exception(cause) with SpcException class SpcException4 extends Exception with SpcException
"Scala的构造方法是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
方法
麻烦
内容
更多
知识
好说
实用
恶心
学有所成
接下来
没什么
一般来说
困境
多个
实际
就是
怪招
情况
文章
案例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库无法识别文件
软件开发风险管理的内容
网络安全法缺陷
备案网站需要同一个服务器吗
广州市软件开发学校有哪些
软件开发是工程还是艺术
山西pdu服务器电源销售价格
杭州bim软件开发工程师
gjb 军用软件开发规范
惠普服务器z440 uuid
曹妃甸区正规软件开发
江苏网络安全宣传图
樱花园租房软件开发
java软件开发项目视频
小米网络服务器无法连接
与网络安全的主体
暗黑各服务器价格
我的软件开发梦
网络安全审查如何实施
网络安全周 阆中
网络安全防止踩踏的手抄报
智能网络技术推荐
国家规定网络安全等级
徐州软件开发公司有多少家
数据库数据挖掘总结的研究状况
惠普服务器z440 uuid
荣耀通用软件开发产品
update函数数据库
湖北pdu服务器电源价格表
前端框架 订阅数据库