1.1 get和set的处理
格式上和 Java 有一些区别:
-
getter / setter 函数有了专门的关键字 get 和 set
-
getter / setter 函数位于 var 所声明的变量下面
-
setter 函数参数是 value
除此之外还多了一个叫 field 的东西。这个东西叫做「Backing Field」。这个 field 对编码的人不可见,但会自动应用于 getter 和 setter,因此它被命名为「Backing Field」。在 Kotlin 里,它相当于每一个 var 内部的一个变量。
1.2 Constants in Kotlin
1.1.1 静态常量
- Companion object
Kotlin中没有static关键字,如果你想在类中声明静态方法或属性,就要把他们放在companion object(伴生对象)中。
class Constants { companion object { val FOO = “foo” } }
-
const val
使用条件
- 作为顶层属性、
companion object
属性,或object
属性 - 只可修饰String或原始类型
- 不能自定义getter
class Constants { companion object { const val FOO = “foo” } } // 静态常量
- JvmField
把上面const去掉,给FOO加上JvmField注解 生成的Java代码原文没给
class Constants { companion object { @JvmField val FOO = Foo() //Foo()是为了说明不限定于原始类型 } }
1.1.2 Top-Level
如果一个类只是用来装载常量,那我们可以放心大胆地“丢弃这个类和companion object”,使用Kotlin的文件级属性(顶层属性) 直接在kt文件中
复制代码
const val FOO = “foo”
生成对应的Java代码(或许就是你在使用Java时会写上的代码)
public final class ConstantsKt {
@NotNull
public static final String FOO = "foo";
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END