Kotlin中定义常量
在Java中,我们可以使用如下代码定义常量。
private static final double PI = 3.14159265;
上述代码是在:代码编译
的时候处理的。
那么在kotlin中如何处理了?
刚开始我以为是
val PI=3.14
但是反编译代码可以发现,这个代表的是Java中的
double PI = 3.1415D;
好吧,连一个final
都没有!
接下来尝试了下在一个kt文件的顶层定义Cth.kt
如下代码
val PX = 3.14
class XX{}
class YY{}
发现反编译值之后PX会存在一个的类中
public final class CthKt {
private static final double PX = 3.14D;
}
请注意命名,自动生成了一个基于文件名+kt后缀的文件。
但是这还不是我想要的,那么如何做才是我们Java中的常量了,看下面的代码:
class Test1 {
companion object {
private const val PY = 3.1415
const val PZ = 3.1
}
}
反编译之后的java代码是:
public final class Test1 {
private static final double PY = 3.1415D;
public static final double PZ = 3.1D;
//...省略其他
}
这下清楚了,原来通过companion object
这个伴生对象来搞定这个事情啊。