mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-07 13:35:58 +07:00
GitOrigin-RevId: 8b2b63fc6db476ca0c2cfe5cadd84db6c4236d0f
55 lines
1.9 KiB
HTML
55 lines
1.9 KiB
HTML
<html>
|
|
<body>
|
|
Reports any variable declarations that can be moved to a smaller scope.
|
|
<p>This inspection is especially
|
|
useful for <i>Pascal style</i> declarations at the beginning of a method. Additionally variables with too broad a
|
|
scope are also often left behind after refactorings.</p>
|
|
<p><b>Example:</b></p>
|
|
<pre><code>
|
|
StringBuilder sb = new StringBuilder();
|
|
System.out.println();
|
|
sb.append(1);
|
|
</code></pre>
|
|
<p>After the quick-fix is applied:</p>
|
|
<pre><code>
|
|
System.out.println();
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.append(1);
|
|
</code></pre>
|
|
<!-- tooltip end -->
|
|
<p>Configure the inspection:</p>
|
|
<ul>
|
|
<li>Use the <b>Only report variables that can be moved into inner blocks</b> option to report only those variables that can be moved inside deeper code blocks.
|
|
For example, when the option is enabled, the movement will not be suggested for the <code>sb</code> variable above.
|
|
However, it will be suggested for the following code:
|
|
<pre><code>
|
|
StringBuilder sb = new StringBuilder(a);
|
|
if (flag) {
|
|
sb.append(1);
|
|
}
|
|
</code></pre></li>
|
|
<li>Use the <b>Report variables with a new expression as initializer
|
|
(potentially unsafe)</b> option to report variables that are initialized with a new expression. This makes the inspection potentially
|
|
unsafe when the constructor has non-local side effects. For example, when the option is enabled, the movement will be
|
|
suggested for the <code>foo</code> variable:
|
|
<pre><code>
|
|
class Foo {
|
|
static List<Foo> fooList = new ArrayList<>();
|
|
String bar;
|
|
|
|
Foo(String bar) {
|
|
this.bar = bar;
|
|
fooList.add(this);
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
// movement is possible even though is unsafe
|
|
Foo foo = new Foo("bar");
|
|
System.out.println(fooList.size());
|
|
System.out.println(foo.bar);
|
|
}
|
|
}
|
|
</code></pre></li>
|
|
</ul>
|
|
</body>
|
|
</html> |