Use public final instead of getters to offer access to immutable variables

Context and Problem Statement

When making immutable data accessible in a java class, should it be using getters or by non-modifiable fields?

Considered Options

  • Offer public static field
  • Offer getters

Decision Outcome

Chosen option: "Offer public static field", because getters used to be a convention which was even more manifested due to libraries depending on the existence on getters/setters. In the case of immutable variables, adding public getters is just useless since one is not hiding anything.

Positive Consequences

  • Shorter code

Negative Consequences

  • newcomers could get confused, because getters/setters are still taught