83 lines
1.9 KiB
Plaintext
83 lines
1.9 KiB
Plaintext
== Why is this an issue?
|
|
|
|
Programming languages evolve over time, and new versions of Java introduce additional keywords.
|
|
If future keywords are used in the current code, it can create compatibility issues when transitioning to newer versions of Java.
|
|
The code may fail to compile or behave unexpectedly due to conflicts with newly introduced keywords.
|
|
|
|
The following keywords are marked as invalid identifiers:
|
|
|
|
[frame=all]
|
|
[cols="^1,^1"]
|
|
|===
|
|
|Keyword|Added in version
|
|
|
|
|`_`|9
|
|
|`enum`|5.0
|
|
|===
|
|
|
|
`assert` and `strictfp` are another example of valid identifiers which became keywords in later versions, but are not supported by this rule.
|
|
|
|
== How to fix it
|
|
|
|
Rename the identifiers that use Java keywords.
|
|
|
|
=== Code examples
|
|
|
|
==== Noncompliant code example
|
|
|
|
[source,java,diff-id=1,diff-type=noncompliant]
|
|
----
|
|
public class MyClass {
|
|
int enum = 42; // Noncompliant
|
|
String _ = ""; // Noncompliant
|
|
}
|
|
----
|
|
|
|
|
|
==== Compliant solution
|
|
|
|
[source,java,diff-id=1,diff-type=compliant]
|
|
----
|
|
public class MyClass {
|
|
int magic = 42; // Noncompliant
|
|
String s = ""; // Noncompliant
|
|
}
|
|
----
|
|
|
|
== Resources
|
|
=== Documentation
|
|
* https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html[Oracle - Java Language Keywords]
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Rename this variable to something other than "XXX", which is a Java keyword.
|
|
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
=== is duplicated by: S3859
|
|
|
|
=== relates to: S1669
|
|
|
|
=== relates to: S2306
|
|
|
|
=== is related to: S1527
|
|
|
|
=== is related to: S1189
|
|
|
|
=== on 8 Aug 2013, 16:32:59 Freddy Mallet wrote:
|
|
Is implemented by \http://jira.codehaus.org/browse/SONARJAVA-280
|
|
|
|
=== on 13 Aug 2019, 10:18:47 Michael Gumowski wrote:
|
|
Removing reference to JIRA ticket in rule description. See SONARJAVA-285 and SONARJAVA-3179 for rule limitation.
|
|
|
|
endif::env-github,rspecator-view[]
|