rspec/rules/S2696/java/rule.adoc

50 lines
1016 B
Plaintext
Raw Normal View History

== Why is this an issue?
Correctly updating a ``++static++`` field from a non-static method is tricky to get right and could easily lead to bugs if there are multiple class instances and/or multiple threads in play. Ideally, ``++static++`` fields are only updated from ``++synchronized static++`` methods.
This rule raises an issue each time a ``++static++`` field is updated from a non-static method.
=== Noncompliant code example
[source,java]
----
public class MyClass {
private static int count = 0;
public void doSomething() {
//...
count++; // Noncompliant
}
}
----
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
=== Message
Make the enclosing method "static" or remove this set.
=== Highlighting
* Primary: the field assignment
* Secondary: the field definition
** message: "Field definition."
'''
== Comments And Links
(visible only on this page)
include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]