Encontrei isso (e muitas outras coisas) num projeto aqui:
List<Elemento> colecao = new ArrayList<Elemento>();
//popula colecao...
....
//alguem me explica pq ele fez isso?
Elemento el = (Elemento)colecao.toArray()[0])
....
Pior que isso aparece direto nesse projeto e muitas vezes dentro de algum loop.
Sério, alguém me explica o que justificaria isso? Pensei pensei e não veio nenhuma justificativa plausível.
Tudo bem que ler um array é mais rápido e tals, mas não assim!
Pode não ser a forma correta, mas se ele quer o primeiro objeto basta dar um .get(0). Mas ainda corre o risco de dar um IndexOutOfBoundsException, embora seja menos custoso e nem exija aquele cast.
Caso seja uma LinkedList um getFirst() seria bem mais apropriado.
Já o que ele fez foi um toArray depois um cast. Isso não é bizarro? Pra mim é demais.
Esse código converte a colecao de Elementos em um array e em seguida pega o Objeto contido no indice 0 desse array fazendo um cast no Object para o tipo elemento.
è o meso que :
Object[] meuArray= colecao.toArray(); //converte a lista em array
Elemento e=(Elemento) myArray[0]; //pega o elemnto no indica 0 e faz um cast no object para o tipo elemento;
A única explicação racional seria se ele quisesse substituir elementos em posições arbitrárias do array e converter de volta numa lista. Mas é lógico que ele só fez isso porque não conhecia o método get(int index).
Isso se chama “programação orientada a auto-complete”. Já vi muito isso - o pior é quando o cara nem tem o javadoc instalado direito, o que ocorre em 95% das vezes. Nesse caso, o cara simplesmente pega o primeiro método sugerido que não dá erro de compilação para o que ele quer fazer.
É por ai mesmo.
Ou seja, o jumento não sabe programar em Java e faz do primeiro jeito que funcionar.
Sim, falei jumento por que quis ser ameno na atribuição de adjetivo.
É por ai mesmo.
Ou seja, o jumento não sabe programar em Java e faz do primeiro jeito que funcionar.
Sim, falei jumento por que quis ser ameno na atribuição de adjetivo.[/quote]
É aí que eu queria chegar… heueheuehueheue
Bizarro é demais… eu por exemplo, peguei uns códigos assim aqui uma vez…
É por ai mesmo.
Ou seja, o jumento não sabe programar em Java e faz do primeiro jeito que funcionar.
Sim, falei jumento por que quis ser ameno na atribuição de adjetivo.[/quote]
É aí que eu queria chegar… heueheuehueheue
Bizarro é demais… eu por exemplo, peguei uns códigos assim aqui uma vez…
Fazer o que, tive que refatorar… heueheueheuehue[/quote]
É, tem coisas assim nesse projeto também.
Pior é que ele da umas quinhentas voltas e recupera a msm informação 15x pra fazer alguma operação.
Sempre da pior maneira possível que ele conseguiu imaginar.
Só consigo imaginar uma morte bem dolorosa pra um ser desses.
Que nada… uma pessoa dessa tem que viver… São por essas e por outras que o Java acaba na vista, de quem não entende PN de nada, com fama de lento e pesado…
Vamos torcer para que o nosso amigo aprenda boas práticas e não seja mais um “digitador” de Software…
Pode não ser a forma correta, mas se ele quer o primeiro objeto basta dar um .get(0). Mas ainda corre o risco de dar um IndexOutOfBoundsException, embora seja menos custoso e nem exija aquele cast.
Caso seja uma LinkedList um getFirst() seria bem mais apropriado.
Já o que ele fez foi um toArray depois um cast. Isso não é bizarro? Pra mim é demais.[/quote]
Oi,
Ele não faz nem um ifzinho > 0 antes de pegar a posição ? :twisted:
Pode não ser a forma correta, mas se ele quer o primeiro objeto basta dar um .get(0). Mas ainda corre o risco de dar um IndexOutOfBoundsException, embora seja menos custoso e nem exija aquele cast.
Caso seja uma LinkedList um getFirst() seria bem mais apropriado.
Já o que ele fez foi um toArray depois um cast. Isso não é bizarro? Pra mim é demais.[/quote]
Oi,
Ele não faz nem um ifzinho > 0 antes de pegar a posição ? :twisted: