De hecho, parece maloliente, y sin ver más contexto es imposible decirlo con certeza. Podría haber dos razones para hacerlo, aunque existen alternativas para ambos.
Primero, es una forma concisa de implementar una conversión parcial, o dejar el resultado con valores predeterminados si la conversión falla. Es decir, podrías tener esto:
public void ConvertFoo(Foo from, Foo to) {
if (can't convert) {
return;
}
...
}
Foo a;
Foo b = DefaultFoo();
ConvertFoo(a, b);
// If conversion fails, b is unchanged
Por supuesto, generalmente esto se maneja usando excepciones. Sin embargo, incluso si las excepciones deben evitarse por cualquier razón, hay una mejor manera de hacerlo: el patrón TryParse es una opción.
Otra razón es que podría ser por razones puramente consistentes, por ejemplo, es parte de una API pública donde este método se usa para todas las funciones de conversión por cualquier razón (como otras funciones de conversión que tienen múltiples salidas).
Java no es excelente para lidiar con múltiples salidas: no puede tener parámetros de solo salida como algunos lenguajes, o tener múltiples valores de retorno como otros, pero aún así, podría usar objetos de retorno.
La razón de la coherencia es poco convincente, pero lamentablemente puede ser la más común.
- Quizás los policías de estilo en su lugar de trabajo (o su base de código) provienen de un entorno que no es Java y han sido reacios a cambiar.
- Su código puede haber sido un puerto de un idioma donde este estilo es más idiomático.
- Es posible que su organización necesite mantener la coherencia de la API en diferentes idiomas, y este fue el estilo de denominador común más bajo (es tonto pero sucede incluso para Google ).
- O tal vez el estilo tenía más sentido en el pasado distante y se transformó en su forma actual (por ejemplo, podría haber sido el patrón TryParse pero algún predecesor bien intencionado eliminó el valor de retorno después de descubrir que nadie lo comprobó en absoluto).