Как использовать volatile в Котлине

Я пробовал что-то вроде этого:

private volatile var instanceState: InstanceState = InstanceState.starts

Error:  'Expected member declaration'

и такой:

private volatile var instanceState: InstanceState = InstanceState.starts

Error:  'Property getter or setter expected'

Volatile не поддерживается на Котлине ?

2 ответов


вы можете пометить свойство как volatile С @Volatile аннотация:

@Volatile var name:String = "stack"

полученное объявление поля эквивалентно Java:

private volatile java.lang.String name;

на @Volatile docs:

помечает поле поддержки JVM аннотированного свойства как volatile, значение, которое записывает в это поле, немедленно становится видимым для остальные потоки.


Котлин не имеет volatile ключевое слово, но комментария: @Volatile (https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-volatile/)