Redundant Field Initializer

ID

java.redundant_field_initializer

Severity

info

Remediation Complexity

auto_fix

Remediation Risk

low

Remediation Effort

low

Resource

Code Smell

Language

Java

Tags

best-practice, code-style

Description

Reports field declarations that are explicitly initialized to the default value for their type. In Java, instance and class fields are automatically initialized to their type’s default value (0 for numeric types, false for boolean, '\0' for char, and null for reference types). Explicitly writing these defaults adds visual noise without changing behavior.

Rationale

Redundant initializers clutter the code and can mislead readers into thinking the value was deliberately chosen when it is simply the language default. Omitting them makes the code more concise and makes truly intentional initializations stand out.

// Bad -- redundant initializers
int count = 0;
boolean ready = false;
String name = null;

Remediation

Remove the redundant initializer and let Java apply the default automatically. If the value is intentional and important for readability, consider adding a comment instead.

// Good -- rely on Java defaults
int count;
boolean ready;
String name;