Ao que parece, o sujeito criou esse monstro recursivo por não conhecer o iterator.
[code]private void removeRecursos(List list, List from) {
if (from == null) {
return;
}
// ser for o mesmo objeto, clona para evitar
// ConcurrentModificationException
if (from.equals(list)) {
from = new ArrayList(list);
}
for (String papel : from) {
removeRecursos(papel, list);
}
}
/**
* Remove da lista, recursivamente
*/
private void removeRecursos(final String rec, List<String> list) {
for (final String p : getRecursos(rec)) {
list.remove(p);
removeRecursos(p, list);
}
}[/code]
Fora que não sabe a diferença de == e equals().
Pra que essa lista extra, ao invés de retornar o getResultList()?
private ArrayList<Documento> listaAssociados(Documento doc) {
ArrayList<Documento> lista = new ArrayList<Documento>();
// criação da query
List<Documento> list = q.getResultList();
if (list != null && !list.isEmpty()) {
lista.addAll(list);
}
return lista;
}
Sim. Muitas vezes, uma API retorna uma lista que não é modificável (muitas vezes sem saber disso) e você quer manipular essa lista. Então, você faz uma cópia.
[code] /**
* @param stringToCovert the stringToCovert to set
* @return the stringConverted - Metodo para converter String para Float
*/
public float convertStringFloat(String stringToCovert) {
[quote=Schuenemann]Talvez a ignorância seja minha, mas achei meio tosco (e ineficiente) adicionar tudo numa nova lista, só porque a primeira não permite remoção.
Acho que teria sido melhor adicionar elemento por elemento ou usar um for, com condições para ver se adiciona ou não. E isso estaria no próprio enum.[/quote]
E tem o lance de caso surja um novo elemento no enum que não seja primário isso aí vai dar problema. O ideal nesses casos é não trabalhar com a negação pra ser o mais específico possível.