Skip to main content

no-unused-private-class-members

Private class members that are declared but never used are likely an error due to incomplete refactoring. They take up space and can confuse readers.
Rule Type: Problem
Fixable: No

Rule Details

This rule reports unused private class members:
  • Private fields/methods: Unused if their value is never read
  • Private accessors: Unused if never accessed (read or written)

Examples

Incorrect Code

Correct Code

Understanding “Used”

Fields and Methods Must Be Read

Accessors Must Be Accessed

Common Patterns

Leftover from Refactoring

Write-Only Fields

Write-only private fields are considered unused since their values are never read.

Self-Updating Fields

Why Private Members?

Private members are often unused because:
  1. Incomplete implementation - You planned to use it but didn’t
  2. Refactoring artifact - Used to be needed, no longer is
  3. Dead code - Experimental code that never got used
Public unused members might be part of your API. Private unused members are definitely dead code.

Refactoring Tips

Remove or Make Public

Add Missing Usage

When Not to Use It

You might disable this rule if:
  1. You’re in the middle of development and have placeholder private members
  2. You want to keep private members for documentation purposes
However, it’s usually better to remove truly unused code.

Comparison with no-unused-vars

  • no-unused-vars - checks variables, parameters, imports
  • no-unused-private-class-members - checks private class members specifically
Both rules work together to catch unused code.