2
respostas

The type HTMLDocument.Iterator is not generic; it cannot be parameterized with arguments <Funcionario> ???

import java.util.Set; import java.util.TreeSet; import javax.swing.text.html.HTMLDocument.Iterator;

public class Teste {

public static void main(String[] args) {

    Funcionario f1 = new Funcionario("Barney", 12);
    Funcionario f2 = new Funcionario("Jonatan", 9);
    Funcionario f3 = new Funcionario("Guaraciara", 13);

    Set<Funcionario> funcionarios = new TreeSet<>(new OrdenaPorIdade());
    funcionarios.add(f1);
    funcionarios.add(f2);
    funcionarios.add(f3);

    Iterator<Funcionario> iterador = funcionarios.iterator();// <-- esse Iterator

    while (iterador.hasNext()) {
        System.out.println(iterador.next().getNome());
    } 
}

}

2 respostas

Consegui fazer o código compilar normalmente. Era algum bug ou eu fiz errado? Procurei um erro simples de sintaxe, mas estava igual o do exemplo.

Resolvi rescrevendo essa linha: Iterator iterador = funcionarios.iterator();

Funcionou assim: java.util.Iterator iterador = funcionarios.iterador();

Usei o atalho CTRL + Space para "agilizar"(testar) em: Iterator Funcionario

Agora roda normalmente.

No console:
Jonatan
Barney
Guaraciara

Ola Hugo,

O problema era mesmo importação. Veja que no primeiro trecho de código, não há importação de java.util.Iterator formalmente no início da classe. A IDE então deve ter dado 2 opções: inserir o java.util.Iterator no import da classe, ou alterar o trecho para referenciar nao só a classe, mas sim com o pacote completo (que foi o caso que você escolheu).

Se possível, dê preferência ao import acima da classe, para o código ficar mais limpo.