Здесь:
public Boolean apply(String string) {
...
Ваш класс PerformChangeImpl
переопределяет метод apply()
.Это ядро интерфейса Function
.
И, наконец, ваш код вызывает:
.apply("test"))
И самое последнее утверждение в apply()
:
return true;
Метод возвращает true
потому что ты сказал это сделать.Таким образом, вы должны либо изменить тело этого метода, чтобы оно возвращало true
/ false
на основе какого-либо условия, либо вам не следует вызывать apply()
в конце.
И обратите внимание: это становится действительно очевидным из печатных заявлений.В итоге вы получаете 6
и 7
, которые вы печатаете в apply()
класса PerformChangeImpl
.
Также обратите внимание: ваш по умолчанию метод выполняет:
if(this.apply(stringValue)) {
Это вызывает apply()
для "окружающих" PerformChangeImpl
... и возвращает true
.