Estou tentando ordenar por atributos um Array List com Bubble Sort
Devo fazer duas ordenações com atributo Float e String
Mas entendo o motivo do erro de um o outro funciona, pois apresenta o mesmo erro
recebo a mensagem:
“unexpected type
required: variable found: value”
Ordenar um vetor sem atributos consigo tranquilo, mas neste caso não esta dando certo. Pesquisei e não encontrei nada.
Não existe meio de definir um valor ao atributo utilizando seu getter.
Você deve trocar esta linha por trab[j].setNome(trab[j+1].getNome()); // O erro está nesta linha
Ou seja, utilizar o setter do atributo nome no objeto correspondente ao elemento i do vetor.
D
drsmachado
Em tempo, sobre o “unexpected type required: variable found: value”:
Lembre-se, o java nem sempre segue o modo que nós, ocidentais (e N outros povos, com exceção dos árabes, japoneses, chineses e outros) utilizamos para ler, ou seja, da esquerda para a direita, de cima para baixo.
Quando o compilador encontra algo como: int x = 10 + 10;, ele não cria uma variável do tipo int na memória, executa a operação de soma e após isso ele une as duas. Pelo contrário, o compilador processa o que vem à direita da igualdade, executando tudo o que for necessário e, então, processa o que está no lado esquerdo da igualdade. Se ali consta existe a declaração de uma variável, isso será feito. Se a variável já foi declarada, ele apenas associa o valor gerado ao finalizar o lado direito e associa à variável existente.
É por isso que ocorre o erro informado, o esperado é um atributo, uma variável, porém, o que se encontra é um método.
T
Thiago.psilva
Cara, muito obrigado, deu certo, era uma coisa simples mas que acabei nem prestando atenção.
E muito obrigado pela informação sobre a forma de leitura do Java, não tinha conhecimento sobre isso, ajudou bastante.
S
staroski
Sua implementação está errada.
Você não está ordenando pelo nome, você está trocando o nome dos trabalhadores.
Você tem que comparar o nome e trocar os trabalhadores de posição quando necessário.