Yanıtlar:
Kotlin belgelerine göre bu eşdeğerdir:
class Hello {
companion object {
const val MAX_LEN = 20
}
}
Kullanımı:
fun main(srgs: Array<String>) {
println(Hello.MAX_LEN)
}
Ayrıca bu statik son özelliktir (alıcılı alan):
class Hello {
companion object {
@JvmStatic val MAX_LEN = 20
}
}
Ve son olarak bu statik son alandır:
class Hello {
companion object {
@JvmField val MAX_LEN = 20
}
}
const val
- zaman sabitini derleyin ve @JvmField val
bazı durumlarda bunun yerine kesinlikle kullanılabilir . Değer - çalışma zamanında hesaplanırsa veya ilkel tür veya Dize değilse, bununla çalışmaz. Ref: kotlinlang.org/docs/reference/…
içinde bir uygulamanız varsa Hello
, companion object
bir sınıf içinde kullanın
class Hello {
companion object {
val MAX_LEN = 1 + 1
}
}
Eğer Hello
saf tek nesnedir
object Hello {
val MAX_LEN = 1 + 1
}
özellikler derleme zamanı sabitleriyse, bir const
anahtar kelime ekleyin
object Hello {
const val MAX_LEN = 20
}
Java'da kullanmak istiyorsanız, @JvmStatic
açıklama ekleyin
object Hello {
@JvmStatic val MAX_LEN = 20
}
Benim için
object Hello {
const val MAX_LEN = 20
}
çok standart bir şeydi. Statik son alanları şu şekilde sınıfımın üzerine koyarım
val MIN_LENGTH = 10
class MyService{
}
private
), bu tanım en kısa olanıdır.