Я пытаюсь вызвать метод Apache Commons StringUtils.join() из класса Groovy. Я хочу объединить 3 строки (part1
, part2
и part3
).Вызов Java Apache StringUtils.join() из Groovy
Почему это не работает?
def path = StringUtils.join([part1, part2, part3]) //1
Но следующая строка работает:
def path = StringUtils.join([part1, part2, part3] as String[]) //2
Следить за вопросом. Почему это работает? Я использую StringUtils v 2.6, поэтому у него нет метода varargs. Всегда ли groovy преобразует параметры метода в массив?
def path = StringUtils.join(part1, part2, part3) //3
В основном это вопрос любопытства. Я не собираюсь использовать StringUtils, потому что я разместил separate question yesterday и нашел лучшее решение. Тем не менее, я все равно хотел бы понять, почему техника №1 не работает, но № 3 работает.
Для # 1, th e result - это строковое представление массива, а не фактические элементы массива, объединенные вместе. Кажется, массив преобразован в строку, прежде чем он будет отправлен методу join(). – Ryan