Junit как узнать, synchronized ли метод?

200
13 декабря 2017, 23:00

Проблема - в заголовке. Вообще, у меня лабораторная работа, где два из заданий - по тестам:

  1. Подпроцессы должны уведомлять друг друга о готовности очередной проции данных с помощью wait() и notify(). Синхронизировать подпроцессы таким образом, чтобы тесты, которые проверяют, была ли выполнена такая синхронизация, считались не пройденными при отсутствии вызова wait().

  2. Синхронизировать доступ к общим данным таким образом, чтобы тесты, которые проверяют, была ли выполнена такая синхронизация, считались не пройденными при отсутствии ключевого слова synchronized.

Кроме этого, я не знаю, как выполнить второй пункт. wait() и notify() - сделал, но как проверить, что есть вызов?

P.S. Обычно здесь прикрепляют код, но тут он вроде не нужен.

Answer 1

Можно проверить соответствующий модификатор у метода, используя рефлексию:

Method method = getClass().getDeclaredMethod(...);
Modifier.isSynchronized(method.getModifiers())

Метод isSynchronized() возвращает true, если метод синхронизирован, и false в противном случае. Тут всё очевидно.

READ ALSO
Hibernate Auto_Increment

Hibernate Auto_Increment

Имею в БД таблицу со столбцом id(auto increment)После удаления данных из таблицы в runtime, требуется сбросить id на 0

218
Мессенджер android приложение [требует правки]

Мессенджер android приложение [требует правки]

Учусь писать на примере мессенджераКак в мессенджере написать функцию отображения для пользователя всех существующих пользователей и сортировку...

153
Заменить элементы главной диагонали

Заменить элементы главной диагонали

Есть такой код, знаю не самый лучший, но есть нужно переделать что бы он заменял элементы главной диагонали каждой строки arsum'омСейчас это...

230
Android BroadcastReceiver помогите

Android BroadcastReceiver помогите

У меня есть класс унаследованный от BroadcastReceiver, в нем создаются напоминания, так же у меня есть активити которое создает и сохраняет список...

215