Kotlin中实现静态

实现"类似静态"

Kotlin 复制代码
class Util {
    fun action1() {}

    //使用companion object关键字会在类的内部创建一个伴生类,每个类都允许有一个伴生类
    //而action2作为伴生类中的方法,可以直接通过类名进行调用,实现类似"静态"的效果
    companion object {
        fun action2() {
            println("This\'s action2!")
        }
}

实现"实质静态"

  1. 伴生类 + 注解
Kotlin 复制代码
class Util {
    fun action1() {}

        @JvmStatic
        fun action2() {
            println("This\'s action2!")
        }
}
  1. 顶层方法

Kotlin中的顶层方法指的是未定义在任何类中的方法,编译器会将所有顶层方法都编译为静态方法。Kotlin通过方法名即可直接调用顶层方法,而Java需要用"文件名"."方法名"的格式对其进行调用

相关推荐
夏天的清晨3 分钟前
C++入门学习
开发语言·c++·学习
新鲜势力呀6 分钟前
PHP 文件上传系统实战:从上传卡顿到分片上传 + 秒传 + 云存储架构完整优化方案
开发语言·架构·php
程序员老陆22 分钟前
从语法糖到类型系统:深度拆解 C++ Lambda 与可调用对象的“血缘关系”
开发语言·c++·程序设计
(Charon)23 分钟前
【C++面试】设计模式:手写单例模式与工厂模式
开发语言·c++
估值探索者24 分钟前
【Python量化系统工程实战 #01】数据存储选型 CSVSQLiteMySQL 对比与 SQLite 实战建库
开发语言·jvm·python·sqlite·api接口·数据api接口·股票数据api接口
根目录下的猫31 分钟前
ROS 2 C++(rclcpp)版本,实现话题订阅、话题发布,以及完整编译运行流程
开发语言·c++·算法
сокол44 分钟前
【Python-基础-环境搭建】Ubuntu Python 开发环境搭建:编译、pipenv、pyenv、远程连接
开发语言·python·ubuntu
liangshanbo12153 小时前
JavaScript 面试题:Object.keys() 的返回顺序是无序的吗?
开发语言·javascript·ecmascript
朝朝辞暮i8 小时前
C++ 第 23 课:class —— 开始真正进入面向对象
开发语言·c++·算法
小师兄吃牛肉9 小时前
C语言篇:宏
c语言·开发语言