Identifiers Should Not Contain Dollar Sign

ID

java.identifier_no_dollar_sign

Severity

info

Remediation Complexity

medium

Remediation Risk

low

Remediation Effort

medium

Resource

Code Smell

Language

Java

Tags

code-style, naming

Description

Reports user-defined identifiers (class names, interface names, field names, method names, local variable names, and parameter names) that contain the dollar sign character ($).

Rationale

While $ is a legal character in Java identifiers, it is reserved by convention for compiler-generated names such as inner-class separators (Outer$Inner), synthetic bridge methods, and lambda desugaring artifacts. Hand-written identifiers containing $ are confusing, may collide with generated names, and violate naming conventions in virtually all Java style guides.

// Bad — dollar sign in user-defined identifiers
private int my$field;
public void do$Something() { }

Remediation

Rename the identifier to use only letters, digits, and underscores. Replace $ with a meaningful word or remove it entirely.

// Good — clean identifiers
private int myField;
public void doSomething() { }