Вызов метода как параметр другого метода в Java - PullRequest
0 голосов
/ 13 февраля 2020

, поэтому мне нужно выполнить задание, в котором я буду следовать тестовому файлу JUnit, чтобы создать весь код, который мне нужен (почти как дизайн c), в основном это кодирование торгового автомата, внутри тестового файла есть этот код прямо здесь

assertThat(snackMachine.chewingGums().quantity()).isEqualTo(DEFAULT_QUANTITY - 1);
assertThat(snackMachine.chips().quantity()).isEqualTo(DEFAULT_QUANTITY - 1);
assertThat(snackMachine.chocolates().quantity()).isEqualTo(DEFAULT_QUANTITY - 1);

и я почесал голову, глядя на это, как у метода внутри класса может быть метод внутри него, а у chewingGums () есть количество () внутри него? ???, возможно ли это в java ?, потому что я просмотрел все, и я не нашел способа реализовать это, как показано здесь.

1 Ответ

2 голосов
/ 13 февраля 2020

chewingGums возвращает объект, имеющий метод quantity.

chewingGums().quantity()

будет таким же, как

Gum gum = chewingGums();
gum.quantity();

, где Gum - это тип, который chewingGums возвращает.

Это похоже на эту строку:

new Scanner().nextInt();

new Scanner() вычисляется до Scanner объекта, затем nextInt вызывается для этого объекта. Это не очень хороший пример, поскольку Scanner является конструктором, но это самый простой пример цепочки методов, который я могу себе представить.

...