boa noite, tentei fazer um código parecido, mas nao compila e retorna que o argumento nao e aplicável. No vídeo o professor passou uma lista para o método sort e deu certo mas no meu deu esse erro. Eis o código:
package RatLab.com;
public class Caixa implements Comparable<Caixa>{
public String getNumeroDaCaixa() {
return numeroDaCaixa;
}
public String getLinhagem() {
return linhagem;
}
public Caixa(String numeroDaCaixa, String linhagem) {
super();
this.numeroDaCaixa = numeroDaCaixa;
this.linhagem = linhagem;
}
@Override
public String toString() {
return "(Caixa "+ this.numeroDaCaixa + " , Linhagem: "+this.linhagem+")";
}
@Override
public int compareTo(Caixa outraCaixa) {
return this.linhagem.compareTo(outraCaixa.getLinhagem());
}
private String numeroDaCaixa, linhagem;
}
package RatLab.com;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Rack {
private int numero;
private char lado;
private List<Caixa> caixas = new ArrayList<Caixa>();
public Rack(int numero, char lado) {
this.numero = numero;
this.lado = lado;
}
public int getNumero() {
return numero;
}
public char getLado() {
return lado;
}
public List<Caixa> getCaixas() {
return Collections.unmodifiableList(caixas);
}
public void adiciona(Caixa caixa) {
this.caixas.add(caixa);
}
public List<Caixa> ordenaCaixas() {
this.caixas.sort(Comparator.comparing(Caixa::getLinhagem));
return Collections.unmodifiableList(caixas);
}
public void ordenaCaixas(Rack rack) {
rack.caixas.sort(Comparator.comparing(Caixa::getLinhagem));
}
}
package RatLab.com;
import java.util.ArrayList;
import java.util.List;
public class testaRack {
public static void main(String[] args) {
Rack rack = new Rack(1, 'a');
List<Caixa> caixas = rack.getCaixas();
System.out.println(caixas);
rack.adiciona(new Caixa("P18/044", "C57"));
rack.adiciona(new Caixa("P18/0001", "C57"));
rack.adiciona(new Caixa("P18/0002", "Balb"));
rack.adiciona(new Caixa("P18/0003", "Wistar"));
rack.adiciona(new Caixa("P18/0004", "CD1"));
System.out.println(caixas);
List<Caixa> caixasOrdenaveis = new ArrayList<>(caixas);
caixasOrdenaveis.sort(caixas);
System.out.println(caixas);
}
}
o erro de compilação ocorre nas ultimas linhas.