File: FieldCanBeStatic.md

package info (click to toggle)
error-prone-java 2.18.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 23,204 kB
  • sloc: java: 222,992; xml: 1,319; sh: 25; makefile: 7
file content (19 lines) | stat: -rw-r--r-- 522 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
`final` fields initialized with a literal can elide a per-instance reference by
adding the `static` keyword. Since the field is `final` it is unmodifiable and
since its initializer is a literal the value is immutable and thus sharing a
per-class field is safe. This also allows a simpler constant load bytecode
instead of a field lookup.

That is, prefer this:

```java
static final String string = "string";
static final int number = 42;
```

Not this:

```java
final String string = "string";
final int number = 42;
```