Могу ли я использовать Matchers.containsInRelativeOrder от Hamcrest?

#java #hamcrest

#java #хэмкрест

Вопрос:

Я немного сбит с толку. Я вижу функцию containsInRelativeOrder в коде:

 @SafeVarargs
public static <E> org.hamcrest.Matcher<java.lang.Iterable<? extends E>> containsInRelativeOrder(E... items) {
    return org.hamcrest.collection.IsIterableContainingInRelativeOrder.containsInRelativeOrder(items);
}
 

но я получаю ошибку «метод не найден», когда пытаюсь использовать этот метод (с Hamcrest 1.3), и я не вижу его в javadoc.

Это проблема с версией? Разве этот метод отсутствует в версии 1.3?

Ответ №1:

Исправлено благодаря @Tom.

Да, это проблема с версией! 1.3 с 2012 года. Функция была добавлена в декабре 2014 года фиксацией 99bc9421a719782c6357f991c891af48d6e9de4a.

Первая версия этой функции была добавлена в ноябре 2014 года с помощью commit 5ed2d06688f9d3b445b98b13056223b79318a614. В то время он находился в отдельном файле, collection/IsIterableContainingInRelativeOrder.java .

Комментарии:

1. Вы проверили, когда была выпущена версия 1.3? Может решить этот вопрос для вас.

2. Пожалуйста. Есть несколько новых функций, которые нельзя использовать, потому что последняя версия чертовски старая. Довольно грустно, но мне все еще нравится Hamcrest: D

3. Спасибо! Я думал, что это так, но я действительно надеялся, что кто-нибудь докажет, что я ошибаюсь.

4. Боковое примечание — вы можете использовать его, скопировав сопоставитель в свой собственный код, если вы не хотите бороться с компиляцией собственной полной копии Hamcrest. Это лицензия BSD, поэтому это не вводит никаких новых требований, кроме тех, которые требуются при импорте библиотеки Hamcrest. Лицензия

Ответ №2:

Похоже, он недоступен в версии 1.3 (см. Javadoc версии 1.3)