да, дело в примитивах, с которыми в кложе можно работать без боксинга
поэтому компилятор и предупреждает про .toString
У всего свои причины. Создавать копию массива на каждый чих весьма непроизводительно. Ну вот знает человек, что такое чистота и слово функтор. Как это ему на практике поможет? Я спрашиваю про принципы. Паттерны идут уже после них. Ну а как понять то, где ничего нет? Принципов нет, определений нет, критериев нет. В этом вопрос.