刚学Scala时,对类的导入方式总是记混,每次写代码都要翻笔记,后来整理了几种常用的导入方法,实操下来特别好记,分享给和我一样的新手同学~
一、基础导入:单个类精准导入
如果只需要用到某个包下的一个类,直接用 import 包名.类名 即可,简洁又精准。比如要导入 tools 包下的 A 类,写法就是: import tools.A 这样后续代码里就能直接使用 A 类创建对象,不用写全路径,很方便。
二、批量导入:多个类一次搞定
要是需要用到同一个包下的多个类,不用逐个导入,用 import 包名.{类1, 类2, 类3...} 就能批量导入。比如同时导入 tools 包下的 A、B、C、Student 四个类,写法如下: import tools.{A, B, C, Student} 比起多次写import语句,这种方式能少写很多冗余代码,效率更高。
三、全量导入:包下所有类一键引入
如果某个包下的类用得特别多,逐个列出来太麻烦,就可以用 import 包名._ (下划线代表该包下所有类)实现全量导入。比如导入 tools 包下所有类,写法是: import tools._ 导入后, tools 包下的所有类都能直接使用,不用再单独导入,适合需要频繁调用该包类的场景。不过要注意,全量导入可能会出现类名冲突,后续用的时候要留意~
四、重命名导入:解决类名冲突小妙招
有时候不同包下会有同名类,直接导入会冲突,这时候就可以给类重命名,写法是 import 包名.{原类名=>新类名} 。比如 tools 包和 tools.art 包都有 Student 类,导入时给 tools 包的 Student 重命名为 NewStudent ,就能区分使用: import tools.{Student => NewStudent} import tools.art.Student 后续代码里, new NewStudent() 调用的是 tools 包的类, new Student() 调用的是 tools.art 包的类,再也不怕混淆啦。
实操示例
把这些导入方法整合到代码里,实际效果如下:
scala
// 重命名导入+指定包导入 tools.{Student => NewStudent}
import tools.art.Student
object demo02 {
def main(args: Array[String]): Unit = {
new A() // 使用tools包下的A类(全量导入后可直接用)
new B() // 使用tools包下的B类
new C() // 使用tools包下的C类
var s1 = new NewStudent() // 使用tools包重命名后的Student类
s1.test() // 调用NewStudent类的方法
}
}
以上就是Scala中常用的类导入方法,其实核心就是根据需要选择精准导入、批量导入还是全量导入,遇到同名类就用重命名解决,多写几次代码就能熟练掌握啦,新手同学可以跟着示例实操试试,很快就能上手~