Kotlin系列之顶层函数和属性

今天一起来看看Kotlin中的顶层函数和属性。

遇到的问题

我们都知道,Java中,所有的代码都是依托于类而存在,我们所谓的函数作为类的方法,我们所谓的属性作为类的属性。但是在有些情况下,我们发现有些方法可能不是属于某一个特定类,有些属性也不是属于某一个特定的类。所以我们就创建了很多的Java工具类和属性的常量类,就像下面这样。

Java代码

其实上面的类只是为了承载我们的静态属性和方法,作为了静态方法和属性的容器,这就是我们目前遇到的问题,一大堆无用的容器类,那让我们看看Kotlin中是如何处理这个问题的。

顶层函数

见名知意,原来在Java中,类处于顶层,类包含属性和方法,在Kotlin中,函数站在了类的位置,我们可以直接把函数放在代码文件的顶层,让它不从属于任何类。就像下面这样,我们在一个文件中写入如下的Kotlin代码。

Kotlin代码

请注意,我们把它放在了util包中,这在我们厚密啊调用这个类时非常重要。

让我们现来看看在另一个Kotlin类中怎么调用。

Kotlin代码

看到了吗?我们可以通过来导入我们将要使用的函数,然后就可以直接使用了,是不是超级方便。那我们再来看看在Java中如何调用上面的方法。

Java代码

因为在Java中,类还是必须要存在的,所以编译器将Str.kt文件里的代码放在了一个的类中,然后把我们定义的Kotlin的函数作为静态方法放在其中,所以在Java中是先通过mport导入这个类,然后通过来调用。

可能有时候你觉得Kotlin为你自动生成的这个类名不好,那你可以通过注解来自定义类名,就像下面这样。

而且要注意,。

在Java中导入类和调用的时候就要使用我们自定义的类名来进行操作了,就像这样。

顶层属性

了解了顶层函数,下面再看看顶层属性。顶层属性也就是把属性直接放在文件顶层,不依附于类。我们可以在顶层定义的属性包括变量和常量,就像下面这样。

Kotlin代码

这里我定义了三个顶层属性,可能有些地方你还不太能看得懂,不急,我们先看看在Kotlin和Java中怎么用,然后我们再理解。

在Kotlin中使用

你会发现在Kotlin中只要导入就可以直接使用了,与顶层属性的使用是一样的。

在Java中使用

首先导入是肯定的,通过类名类调用这个也和顶层函数里面的规则一致。然后你会发现Kotlin为var变量生成了get和set方法,然后为val常量生成了get方法,最后我们的const val常量则等同于Java的public static final常量,可以直接通过来调用。

写在最后

Kotlin中通过使用顶层函数和顶层属性帮助我们消除了Java中常见的静态工具类,使我们的代码更加整洁,值得一试。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180123G037GV00?refer=cp_1026

同媒体快讯

扫码关注云+社区