• 整个静态类
object StaticUtil{fun method()...
}
  • 类中的部分静态方法
class StaticUtils {companion object {// 包裹范围内 属于静态方法fun method()...}
}
  • 全局静态
    直接新建一个 Kotlin file 然后定义一些常量,方法
val staticString = "这里也是全局静态字符串"fun startIntent(context: Context, clazz: Class<*>, bundle: Bundle?) {val intent = Intent()intent.setClass(context, clazz)if (bundle != null) {intent.putExtras(bundle)}context.startActivity(intent)
}

补充
我们平时写代码是肯定会有各种类型的工具类,比如:UserUtil, IntentUtil , DialogUtil … 等等,
那么在 Java 中,我们是这么写的:

class UserUtil{public static void XXX(){···}}

这种写法转换成 Kotlin 版本的可能是这样的:

object UserUtil{fun XXX(){}
}

也可能是这样的:

class UserUtil{companion object {fun XXX(){}}
}

那么不管上面的 Java 版本,还是 Kotlin 版本,最终的调用方法都还是一样的:

UserUtil.XXX()

我们上面说到了一个 全局静态 的写法,那么,其实我们在项目中写工具类时,完全可以用到这种写法,比如,
新建一个 name 为 : UserUtil 的 Kotlin file,也就是 .kt 文件,然后,直接写出我们上面工具类中的方法:

fun XXX(){
}

这种写法的好处就是,你在项目中根本不需要再去使用 UserUtil 类名去调用。

可能有人会问,这种直接写在 kt 文件中,和写在 class UserUtil 类中有什么区别,如果你能去看一下编译代码,你就知道了,其实都是一样的,编译结果跟 Java 静态工具类的写法没什么区别,你要非说区别的话,那就是 类 和 方法 都多了一个 final 修饰符。。
另外就是,因为不用通过类名去调用方法了,所以,你自己要规范好写的静态方法名称,因为一旦方法或者 kt 文件过多的话, 就有可能会搞混乱。这点也是需要各位自己注意的。
至于项目中如何去用这几种写静态类的方法,就看各位的喜好了。

Kotlin 静态类,静态方法相关推荐

  1. C#静态类 静态方法与非静态方法比较

    静态类 在类(class)上加入static修饰,表示该类无法被实例化,并将该类中,无法实例化变量或函数 静态类的主要特性 仅包含静态成员 无法实例化 静态类的本质,时一个抽象的密封类,所以不能被继承 ...

  2. java 静态类 静态方法_JAVA的静态变量、静态方法、静态类

    静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象                                ...

  3. Kotlin:静态方法

    静态方法在其他高级语言(如C++,Java)中也叫类方法.静态方法在调用时无需创建实例,通过类名.方法名的方式调用. 在java中调用静态方法的只需在声明前面加关键字static即可.而kotlin中 ...

  4. C# 反射 静态类 静态方法 static

    C# 通过反射调用实例类或静态类的方法 一.创建类 //反射对象类 //ruleAssembly为dell文件.ruleNmspaceName :命名空间:ruleClsName:类名 //如果是泛型 ...

  5. php静态类 使用场景,【php】PHP静态方法和非静态方法的使用场景

    单纯的语法上是没有什么问题的 但对静态方法和非静态方法的使用场景 什么情况下该用什么希望大家能讲解下 我现在的使用情况是: 基本上都是实例方法, 除了单例, 工厂, 几个设计模式时使用! 其他的时机完 ...

  6. c#chart背景透明_C# 二

    三十三. 如何确定事件是否已订阅 https://stackoverflow.com/questions/2697247/how-to-determine-if-an-event-is-already ...

  7. 实现ASP.NET MVC3 HtmlHelper 的 RadioButtonList 与CheckBoxList 扩展

    ASP.NET MVC3也出来有一段时间了,对于没有RadioButtonList 与CheckBoxList的问题,网上也已经有很多解决方案了,可以for循环拼接出来,也可以引用ASP.NET MV ...

  8. Spock是什么?它和JUnit,JMock有什么区别?

    这是Spock系列的第一篇文章,整个专辑会介绍Spock的用途,为什么使用Spock?它能给我们带来什么好处?它和JUnit.JMock.Mockito有什么区别?我们平时写单元测试代码的常见问题和痛 ...

  9. 对标金九银十:各大厂最新Java面试真题整理+简历模板

    马上要到金九银十了,小编总结了一些面试题目包含百度/腾讯/小米/网易/搜狗/知乎/京东/360/瓜子,现在放上来,由于是自己整理,所以涵盖不全面的话诸位请谅解. 根据我这些年的面试经验来看,面试有一定 ...

最新文章

  1. 深度解析神经网络中每个神经元的使命 | MIT朱俊彦港中文周博磊力作
  2. 亚马逊全面回应:涵盖人脸识别、假货等 10 个问题
  3. 《剑指offer》c++版本 16.数值的整数次方
  4. oschina mysql limit_MySQL 用 limit 为什么会影响性能?
  5. java仿win7计算器布局
  6. java如何调用蜂鸣器_用鸿蒙OS在蜂鸣器上播放一曲《两只老虎》
  7. 浅谈-国标GB28181协议上下级对接国标编码要求(四)
  8. 16中国App年度排行榜及17年趋势预测
  9. 34. 脱壳篇-FSG压缩壳、ImportREC修复IAT输入表的使用,令一种寻找OEP方式
  10. html表格中加入分割线,表格分割线一分为三 WORD表格怎么插入一条竖的分割线
  11. 微信公众号消息模板——Java
  12. FlashFXP,flashfxp连接失败
  13. python敏感字替换_python如何实现敏感词替换
  14. Excel多条件求和 SUMPRODUCT函数用法详解
  15. 格式化D盘显示有一个应用程序正在运行,无法格式化
  16. Python去除列表中元素的前后空格和换行
  17. TCPcopy安装、部署
  18. 实战| Python爬虫、构建GUI、程序打包,这篇文章带你玩过瘾!
  19. flatten层的作用
  20. linux内核路由转发表的组成,linux路由转发表的检索过程(fib_lookup)

热门文章

  1. 中国湿地保护在迪拜COP13上获认可
  2. PTA浙大版《C语言程序设计(第3版)》习题4-8 高空坠球
  3. centos7使用letsencrypt获取免费https证书
  4. 编写一个编程,提示用户输入年龄,然后显示改年龄对应的秒数(C)
  5. 程序员养生(每一个程序员都应该看一看)
  6. Ubuntu 更新源
  7. 记录unity制作2D游戏过程
  8. 手把手教你入门R语言(1)——R软件初识与安装
  9. rsync+crond备份
  10. 在Flutter中添加图片