Ref.: LinkedHashMap e Iterator

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

[code] 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();
}

[/code]

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

Perdoe-me!

Pode trocar em miúdos?

Obrigado.

[quote=prsantos]Perdoe-me!

Pode trocar em miúdos?

Obrigado.[/quote]

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!

KKKKKKKKKKKKKKKKKKKKKKKKK

Tem razão!

Mas obrigado pela explicação, agora entendi.

Valeu MERMO!