Pessoal , estou rodando meu projeto e esta dando erro na seguinte linha do meu projeto
C:…\PrecoPorMetodo.java:[81,31] incomparable type
s: br.com.cqa.lims.analise.Metodo and java.lang.Long
public int getGrupoIdDesteMetodoNaEspec(Especificacao especificacao, Metodo metodo){
OrcamentoServiceBean osb = new OrcamentoServiceBean();
List<PrecoPorMetodo> listaDaEspecificacao = osb.buscarPrecoMetodoEspecificacao(especificacao);
for(PrecoPorMetodo precoMetodo : listaDaEspecificacao){
if (precoMetodo.getMetodo() == metodo.getId()){
return precoMetodo.getGrupo();
}
}
return 0;
}
/////////// o erro esta aqui
if (precoMetodo.getMetodo() == metodo.getId()){
return precoMetodo.getGrupo();
precoMetodo.getMetodo() é um long?
A mensagem de erro é clara.
Você não pode comparar uma instância de Metodo com uma instância de Long com o operador ==.
Se realmente quiser fazer isso (e eu não acho que quer), você terá que usar o método equals.
Qual parte do “não se compara objetos com ==” você deixou de usar ali em cima?
Objetos possuem o método equals…
Aliás, por padrão, mesmo que o método tenha o mesmo valor que o long em questão, o resultado do equals será false, pois, são de classes distintas.
Você precisa comparar os valores primitivos, neste caso (ou cada um dos atributos envolvidos).
Pessoal, o meu getMetodo esta assim :
public abstract class Entidade implements Serializable {
private static final long serialVersionUID = 222432820467434425L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
protected Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
......
////////////////////////////////
@Entity(name = "br.com.cqa.lims.orcamento.PrecoPorMetodo")
@Table(name="preco_por_metodo")
public class PrecoPorMetodo extends Entidade{
@ManyToOne
@JoinColumn(name="metodo_id", nullable=false)
private Metodo metodo;
public Metodo getMetodo() {
return metodo;
}
public void setMetodo(Metodo metodo) {
this.metodo = metodo;
}
public int getGrupoIdDesteMetodoNaEspec(Especificacao especificacao, Metodo metodo){
OrcamentoServiceBean osb = new OrcamentoServiceBean();
List<PrecoPorMetodo> listaDaEspecificacao = osb.buscarPrecoMetodoEspecificacao(especificacao);
for(PrecoPorMetodo precoMetodo : listaDaEspecificacao){
------>>>>ERRO AQUI If (precoMetodo.getMetodo() == metodo.getId()){
return precoMetodo.getGrupo();
}
}
return 0;
}
Como posso resolver isso … .?? tem alguma conversão que pode ser feito ???