mirror of
https://github.com/github/codeql.git
synced 2026-04-27 17:55:19 +02:00
Migrate Java code to separate QL repo.
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE qhelp PUBLIC
|
||||
"-//Semmle//qhelp//EN"
|
||||
"qhelp.dtd">
|
||||
<qhelp>
|
||||
|
||||
|
||||
<overview>
|
||||
<p>A field of immutable type that is not declared <code>final</code>, but is assigned to only in a
|
||||
constructor or static initializer of its declaring type, may lead to defects and makes code less
|
||||
readable. This is because other parts of the code may be based on the assumption that the field has
|
||||
a constant value, and a later modification, which includes an assignment to the field, may
|
||||
invalidate this assumption.
|
||||
</p>
|
||||
|
||||
</overview>
|
||||
<recommendation>
|
||||
|
||||
<p>If a field of immutable type is assigned to only during class or instance initialization,
|
||||
you should usually declare it <code>final</code>. This forces the compiler to verify that the field
|
||||
value cannot be changed subsequently, which can help to avoid defects and increase code readability.
|
||||
</p>
|
||||
|
||||
</recommendation>
|
||||
<references>
|
||||
|
||||
|
||||
<li>
|
||||
Java Language Specification:
|
||||
<a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">4.12.4 final Variables</a>,
|
||||
<a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.3.1.2">8.3.1.2 final Fields</a>.
|
||||
</li>
|
||||
|
||||
|
||||
</references>
|
||||
</qhelp>
|
||||
Reference in New Issue
Block a user