Я видел, как кто-то создавал пользовательское сопоставление аргументов, подобное следующему.Однако мне трудно понять, как это работает.
Что я могу понять, это метод, который принимает параметр и возвращает ArgumentMatcher, который является интерфейсом, имеющим тип List<Person>
.И переопределенный метод - это средство сравнения, использующее лямбду.Я думаю, что часть тела является наиболее запутывающей, если кто-то может объяснить это.
private ArgumentMatcher<List<Person> personListSize(final int size) {
return argument -> argument.personList().size() == size;
}
Так я обычно делаю что-то подобное, что для меня легче понять, просто интересно, как я могу это сделать?получить следующее, похожее на приведенное выше?
public class CustomArgumentMatcher implements ArgumentMatcher<List<Person>> {
@Override
public boolean matches(List<Person> argument) {
return argument.size() == size;
}
}
Просто начинаю понимать, это работает:
private ArgumentMatcher<String> stringMatcher = new ArgumentMatcher<String>() {
@Override
public boolean matches(String argument) {
return argument.contains("");
}
};
Однако, если я добавлю параметр для передачи следующим образом:
private ArgumentMatcher<String> stringMatcherArgs(final String name) = new ArgumentMatcher<String>() {
}
Я получаю сообщение об ошибке, говорящее unexpected token
просто интересно передать параметр в приведенном выше?