Skip to main content

Code reviews rule: Excessive number of method arguments

Written by David Martin
Updated this week

Excessive number of method arguments

Why is this an issue?

Methods with many parameters are difficult to use correctly and maintain:

  • Error-prone: Callers may pass arguments in the wrong order.

  • Hard to read: Long parameter lists obscure the method's purpose.

  • Difficult to extend: Adding new parameters breaks existing callers.

  • Code smell: Often indicates the method is doing too much.

Examples

Example of incorrect code:

public void createContact(String firstName, String lastName, String email,
String phone, String title, String department, Id accountId,
Boolean isActive, String mailingStreet, String mailingCity) {
// Too many parameters
}

Example of correct code using a wrapper class:

public class ContactRequest {
public String firstName;
public String lastName;
public String email;
public String phone;
public Id accountId;
// Additional fields...
}

public void createContact(ContactRequest request) {
Contact c = new Contact(
FirstName = request.firstName,
LastName = request.lastName,
Email = request.email
);
insert c;
}

How can I fix violations?

  1. Use wrapper classes: Group related parameters into a single object.

  2. Use the builder pattern: For complex object construction with many optional parameters.

  3. Split the method: If the method needs many parameters, it may be doing too much.

  4. Use method overloading: Provide simpler versions with fewer parameters and sensible defaults.

When should I disable this rule?

You may dismiss specific violations for methods that interface with external systems requiring specific parameter signatures.

Resources

Did this answer your question?