Ref.: LinkedHashMap e Iterator

4 respostas
P

Bom dia.

O pq. disso?

Multiple markers at this line
- LinkedHashMap is a raw type. References to generic type
LinkedHashMap<K,V> should be parameterized
- LinkedHashMap is a raw type. References to generic type
LinkedHashMap<K,V> should be parameterized

Pq. LinkedHashMap e Iterator estão em amarelo?

Estou usando o ECLIPSE Europa 3.2

protected static String PreparaInclusaoRegistro(final Object Tabela) {
        LinkedHashMap lhmAtributosClasse = new LinkedHashMap();
        StringBuffer sbSQL = new StringBuffer();
        String strNomeAtributo = new String();
        
        //
        lhmAtributosClasse = getAtributosClasse(Tabela);
        
        //Inclui Registro
        sbSQL.append("INSERT INTO ").append(lhmAtributosClasse.get("NomeTabela") + " ");
        sbSQL.append("(");
        
        //Lista as entradas (Campos da Tabela)
        for (Iterator it = lhmAtributosClasse.keySet().iterator(); it.hasNext(); ) {
            strNomeAtributo = it.next().toString();
            
            if (!strNomeAtributo.equals("NomeTabela") && !strNomeAtributo.substring(strNomeAtributo.length()-3, strNomeAtributo.length()).equals("Chv")) {
                sbSQL.append(strNomeAtributo).append((", "));
            }
        }
        
        //Retira o excesso
        sbSQL.delete(sbSQL.length() - 2, sbSQL.length());
        
        sbSQL.append(") VALUES (");
        
        //Lista as entradas (Parâmetros)
        for (Iterator it = lhmAtributosClasse.keySet().iterator(); it.hasNext(); ) {
            strNomeAtributo = it.next().toString();
            
            if (!strNomeAtributo.equals("NomeTabela") && !strNomeAtributo.substring(strNomeAtributo.length()-3, strNomeAtributo.length()).equals("Chv")) {
                sbSQL.append("?, ");
            }
        }
        
        //Retira o excesso
        sbSQL.delete(sbSQL.length() - 2, sbSQL.length());
        
        sbSQL.append(")");
        
        return sbSQL.toString();
    }

4 Respostas

victorwss

A mensagem diz exatamente qual é o problema LinkedHashMap é uma classe genérica, mas você utiliza o tipo bruto. O mesmo vale para Iterator.

P

Perdoe-me!

Pode trocar em miúdos?

Obrigado.

victorwss

prsantos:
Perdoe-me!

Pode trocar em miúdos?

Obrigado.

Pelo visto você não conhece generics. Dê uma pesquisada nisso.

Basicamente é o seguinte:

LinkedHashMap<String, Integer> : Um LinkedHashMap onde as chaves são Strings e os valores são Integers.
LinkedHashMap<Pessoa, Carro> : Um LinkedHashMap onde as chaves são Pessoas e os valores são Carros.
LinkedHashMap : Um LinkedHashMap bruto. Nada se sabe sobre o tipo da chave e nem do tipo dos valores!!!

Iterator<String>: Um iterador que itera uma lista de Strings.
Iterator<Carro>: Um iterador que itera uma lista de Carros.
Iterator: Um Iterator bruto. Ele itera uma lista de… alguma coisa indeterminada!

P

KKKKKKKKKKKKKKKKKKKKKKKKK

Tem razão!

Mas obrigado pela explicação, agora entendi.

Valeu MERMO!

Criado 18 de abril de 2008
Ultima resposta 18 de abr. de 2008
Respostas 4
Participantes 2