2013-07-05 3 views
0

У меня есть функция, которая получает ряд параметров.Передача всех параметров функции

Чтобы мой код выглядел яснее и лучше, я хотел бы передать часть функции другой функции в том же классе.

Эта новая функция требует тех же параметров, что и исходная функция. Есть ли способ передать все параметры этой функции сразу (в том же порядке, конечно) вместо того, чтобы писать их все явно?

+3

Если вам часто нужны параметры тезисов, возможно, вам следует создать класс с ними в качестве атрибутов. –

+1

Вы идете с фона 'Perl'? Если это так, к сожалению, нет '' ', чтобы передать их или' @ _', чтобы захватить все из них. –

ответ

7

Если у вас более 3 или 4 параметров, я бы их инкапсулировал в объект и передал бы это вместо самих параметров.

Таким образом, вместо

void someMethod(String name, int age, double salary, char gender); 

Я хотел бы использовать

void someMethod(person); 

с человеком быть что-то вроде этого (вы получите идею)

class Person { 
    String name; 
    int age; 
    double salary; 
    char gender; 
} 
0

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

0

Используйте DTO design pattern, если у вас более трех параметров, переданных функции.

DTO ->Data transfer object. Создайте объект всех необходимых параметров и передайте его методу.

Если вы не хотите создавать новый класс, используйте HashMap.

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