Aunque entiendo para qué se utiliza la palabra clave final
en el contexto de clases y métodos, así como la intención de su uso en relación con las variables; sin embargo, el proyecto en el que comencé a trabajar parece tener un número excesivo de ellos y tengo curiosidad por la lógica que hay detrás.
El siguiente fragmento de código es solo un pequeño ejemplo, ya que no veo mucho en la palabra clave final
para las variables key
y value
:
private <K, V> Collection<V> getValuesForKeys(
final Map<K, V> map, final Collection<K> keys)
{
final Collection<V> values = new ArrayList<V>(keys.size());
for (final K key : keys) {
final V value = map.get(key);
if (value != null) {
values.add(value);
}
}
return values;
}
He estado leyendo un poco el uso de los artículos que he encontrado en Google; sin embargo, ¿el patrón realmente hace cosas como ayudar al compilador a optimizar el código?