1.隐式对象
Scala
object Test1 {
case class DatabaseConfig(drive:String,url:String)
//隐式对象
//格式:就是在对象前面加一个 implicit
//作用:给函数当默认值
implicit object MySqlConfig extends DatabaseConfig("sqlserver.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")) //使用自己定义的值
}
}
**2.**隐式类
Scala
//隐式类 == 一个类 + 一个隐式转换函数
//格式:在class的前面,添加implicit
//要点:要有一个参数,就要待被转换的类型,返回的类型就是当前的类
object Test2 {
implicit class X(s:String) {
println("transform被调用了...")
def testabc:Unit = {
println("abc......",s)
}
}
// def transform(s:String):X = {
// println("transform被调用了...")
// new X(s)
// }
def main(args: Array[String]): Unit = {
"abcddd".testabc
}
}