import java.io.File
/**
* 扩展 函数 :给类添加一个原来没有的方法
*/
fun main() {
val stu = Student()
stu.add(100, 200)
// KT本来就有的函数
val file = File("///")
file.readText()
file.show()
}
//第一种: 扩展 函数 :给类添加一个原来没有的方法
fun Student.add(n1: Int, n2: Int) {
println("结果:${n1 + n2}")
}
fun Student.show() {
println("Student show")
}
//第二种: 给 java File 等系统类 增加 扩展函数
fun File.show() {
println("给 java File 增加 扩展函数")
}
import java.io.File;
import java.io.FileReader;
import kotlin.io.FilesKt;
import kotlin.text.Charsets;
public class Client {
void test() {
File file = new File("xxxx");
// Java 调用 Kotlin类中的扩展函数
FilesKt.readText(file, Charsets.UTF_8);
}
}
总结:
1,可以给Kotlin 类添加原来没有的函数
2,可以给系统、Java或者KT 原有的类,增加扩展函数
用处:给不便修改的包,开源框架中的类,自由添加方法