синхронизировать свойства getters / seters

Поэтому я пытаюсь понять, как Kotlin обрабатывает синхронизацию свойств. Если у меня есть этот класс:

class Foo { var a = 0 var b = 0 } 

и я хочу убедиться, что a & b синхронизирован весь доступ. Как мне это сделать? Я попытался использовать аннотацию:

 class Foo { @Synchronized var a = 0 @Synchronized var b = 0 } 

но Kotlin дает мне ошибку компилятора:

 This annotation is not applicable to target 'member property with backing field' 

Я просто пытаюсь получить лучшую ручку безопасности потоков в Котлине. Это то, что я всегда был OCD на Java, и я пытаюсь понять, как правильно его обрабатывать в Котлине.

Вы не можете синхронизировать свойство, но можете синхронизировать его с методами доступа. Используйте следующий синтаксис:

 class Foo { var a = 0 @Synchronized get @Synchronized set //or @get:Synchronized @set:Synchronized var b = 0 } 
Intereting Posts
Подождите завершения задач подписчиков ConnectableObservable Многие небольшие модули или несколько больших модулей для лучшей производительности? Всплывающее диалоговое окно завершения работы Kotlin после ввода «объекта». Строительство проектов Kotlin с Gradle иногда не получается с NoClassDefFoundError как сделать ссылку с URL-адресами в TextView на андроид без использования java Android Plugin 2.2.0-alpha1 не скомпилируется с Kotlin Kotlin Kmongo вставить и вернуть вставленный элемент Изменение имени приемника функции расширения kotlin JVM name Определите глобальную функцию в Kotlin, которую я буду использовать в html-файле для использования в качестве обратного вызова onclick Претендент свойства lateinit не был инициализирован с помощью EasyMVP, Robolectric и Kotlin Увеличивает ли Android Studio 3.0 информацию о параметрах запроса? Могу ли я получить доступ к «закрывающему» объекту для вызова встроенной функции в Котлин? Издевательская функция сопутствующего объекта в котлине Использование функции Kotlin как типа Java SAM Общее наследство Котлина