Kotlin笔记30--顶层方法

36 篇文章 2 订阅

Kotlin 中的 顶层方法 是指 没有定义在任何类中的方法

新建一个 Kotlin 文件,文件类型选择 File ,新建之后,这个文件中的所有方法都是顶层方法。

纳尼?好像不科学。 注意,新建的 Kotlin 文件不是类,所以它里面的方法都是顶层方法。

创建顶层方法

新建了 TopTest.kt ,内容如下

package com.cosmos.helloworld.ktfile

fun main() {
    
}

fun testTop(){
    println("testTop")
}

那么,这个文件中的方法都是顶层方法。

在 Kotlin 中调用

在 Kotlin 中可以直接调用顶层方法,
不用包名类名,(你不是 import 了吗?点进去是直达 testTop 方法的,所以是不用包名类名)
也不用创建实例。
如直接在 MainActivity 中调用。

import com.cosmos.helloworld.ktfile.testTop

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        testTop()
    }
}

在 Kotlin 文件中调用也一样,

fun main(){
    testTop()
}

在 Java 中调用

在 Java 中也可以直接调用顶层方法,写法类似调用静态方法的方式,示例,

package com.cosmos.helloworld;
import com.cosmos.helloworld.ktfile.TopTestKt;

public class JavaTest {

    public static void main(String[] args) {
        JavaTest javaTest = new JavaTest();
        javaTest.test();
    }

    public void test(){
        TopTestKt.testTop(); //这里
    }
}

Java 中没有顶层方法的概念,方法必须定义在类中。所以不能是 Kotlin 的写法。

刚才创建了 TopTest.kt 文件,编译器会自动创建一个 TopTestKt 的 Java 类,testTop 方法就定义在 TopTestKt 的 Java 类中。

所以,Java 中就这样写了,

TopTestKt.testTop(); 

测试时还碰到个问题,运行提示 SourceSet with name ‘main‘ not found

* What went wrong:
A problem occurred configuring project ':app'.
> Could not create task ':app:JavaTest.main()'.
   > SourceSet with name 'main' not found.

修改 .idea/gradle.xml ,添加 <option name="delegatedBuild" value="false" />
在这里插入图片描述

同步一下,运行OK。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值