- object ccc2 {
- //隐式对象
- //格式:就是在对象面前加一个implicit
- //作用:给函数当默认值
- case class DatabaseConfig(driver:String,url:String)
- implicit object MySqlConfig extends DatabaseConfig("mysql.jdbc","localhost:3306")
- //定义一个连接数据库的函数
- def getCon(implicit config:DatabaseConfig):Unit = {
- println(config)
- }
- def main(args: Array[String]): Unit = {
- // println(MySqlConfig)
- getCon//使用默认值
- getCon(DatabaseConfig("sqlite","localhost:80"))//使用自己定义的值
- }
- }
复制代码 隐式类
- //隐式类 == 一个类+一个隐式转换函数
- //格式:在class的前面,添加implicit
- //要点:要有一个参数,就要待被转换的类型,返回的类型就是当前的类
- object ccc3 {
- implicit class X (s:String){
- println("构造器被调用了。。。")
- def testabc:Unit ={
- println("abc.....",s)
- }
- }
- // implicit def transform(s:String):X = {
- // new X(s)
- // }
- def main(args: Array[String]): Unit = {
- "abcddd".testabc
- }
- }
复制代码 !!!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |