像我们在做项目的过程中总会用到一些工具类,有的是处理字符串的有的是处理其他数据的,往往这些方法都不会写在某个功能模块的类里,而是写在单独的什么Util这些工具类中,往往这些方法或函数会声明成static的方法或函数,这样我们可以在处理相关数据的时候去直接不实例化而进行调用,那么在kotlin中有一种写法叫做顶层函数,这类函数一般定义在一个单独的类文件中,我们也可以为他们指定在java中调用时的类名称。如下
@file:JvmName("StringFunctions")
package com.lmm.test.kotlin.kotlintest
import java.lang.StringBuilder
fun <T> joinString(
collection: Collection<T>,
separator: String = ", ",
prefix: String = "",
postfix: String = ""
): String {
val stringBuilder = StringBuilder(prefix)
for ((index, element) in collection.withIndex()) {
if (index > 0) stringBuilder.append(separator)
stringBuilder.append(element)
}
stringBuilder.append(postfix)
return stringBuilder.toString()
}
代码中提到的@file:JvmName(“StringFunctions”)这种语法就是会生成java中需要调用的时候用的类名,这种写法叫做注解。
在java中调用方式如下
import package com.lmm.test.kotlin.kotlintest.StringFunctions;
StringFunctions.joinString(...) //参数对照定义中来