Avatar ·

如何将Java中的静态方法替换为Kotlin:完整指南

你好!我在使用Java几年后刚开始学习Kotlin,遇到了一些困惑。在Java中,我经常使用静态方法来创建工具类、工厂或常量。例如: ```java public class StringUtils { public static boolean isEmpty(String str) { return str == null || str.trim().isEmpty(); } public static final String APP_NAME = "MyApp"; } ``` 在Kotlin中,我不能直接写`static`。当我尝试: ```kotlin class StringUtils { static fun isEmpty(str: String?): Boolean { // 错误! return str == null || str.trim().isEmpty() } } ``` 编译器报错:"Modifier 'static' is not applicable inside 'top level'"。我搜索了一下,找到了`companion object`,但不太明白它是如何工作的。例如,我想要: 1. 创建一个工具类,其中的方法可以在不创建实例的情况下调用(如`Math.abs()`)。 2. 定义常量,使其在任何地方都可访问。