2014-06-18 2 views
0

У меня есть Method и List<Object> параметров для метода, с которым вызывается. Однако список параметров может быть не в правильном порядке и может включать слишком много/не достаточно параметров, соответствующих сигнатуре метода.Параметры соответствия для подписи метода

Прежде чем я изобретаю колесо, существует ли функция для вызова метода со списком параметров, которые у меня есть, и это соответствует, насколько это возможно, параметрам подписи метода ... может быть, что-то весной?

ответ

-2

Вы можете либо передать список непосредственно вашему методу, либо использовать method overloading.

Перегрузка метода может быть полезна, но на самом деле не будет вариантом, если ваши аргументы не соответствуют порядку. Если вы можете отсортировать список объектов заранее, это может быть вариант.

На мой взгляд, самый простой способ передать список объектов - передать сам список, а не пытаться его разбить заранее. В этом случае вам нужно будет выписать свою логику, чтобы разбить список один раз внутри метода. Этот случай также предоставит вам больше возможностей тестирования, чтобы узнать, что именно содержится в вашем списке.

1

Нет, любая реализация для решения вашей проблемы потребует внешней информации, которую бы предоставил только поставщик Method и List<Object>.

С методом, как

void method (String name, String city, String parent) {} 

и а List

"Sotirios", "New York", "Alexander" 

где бы каждый аргумент идти в Method#invoke(..)?

Только вы можете знать эту информацию.

+0

А я об этом не думал. Мой пример будет иметь только разные типы. Угадайте, что я напишу что-нибудь ... – Cheetah

+0

@Cheetah Самое большее, что вы можете сделать (не зная порядка), - это наилучшее сочетание типов (с учетом наследования). Вы можете оценивать заказы и выбирать топ-рейтинг. –

Смежные вопросы