Reserved Future Keyword Identifier

ID

java.reserved_future_keyword_identifier

Severity

info

Remediation Complexity

trivial

Remediation Risk

low

Remediation Effort

low

Resource

Reliability

Language

Java

Tags

naming, reliability

Description

Reports identifiers (field names, method names) that use Java reserved future keywords such as var, yield, record, sealed, permits, or module.

Rationale

Java progressively promotes contextual keywords to full keywords. Code that uses these words as identifiers compiles today but may fail when upgrading to a newer Java version or when enabling preview features:

int var = 10;        // Conflicts with local variable type inference (Java 10+)
String record = "";  // Conflicts with record types (Java 16+)
boolean sealed = true; // Conflicts with sealed classes (Java 17+)

Remediation

Rename the identifier to a descriptive, non-keyword name:

int count = 10;
String dataRecord = "";
boolean isSealed = true;