Sobrecarga de Método

Bom dia Amigos
Criei o seguintes métodos

public PedidoIten procuraId(PedidoIten iten ){
   try {
   String sql = "select a.ID , a.DESCRICAO, b.ID as CODIGO_BARRA  from PRODUTO as a inner 
join PRODUTO_CODIGO_BARRA as b on  a.ID = b.FK_PRODUTO where a.ID = ? ";
   return jdbctemplate.queryForObject(sql, 
           new Object[]{iten.produto.getId()} , 
           new RowMapper<PedidoIten>() {
                @Override
                public PedidoIten mapRow(ResultSet rs, int i) throws SQLException , 
EmptyResultDataAccessException {
                    PedidoIten pedidoIten = new PedidoIten();
                    pedidoIten.setDescricao(rs.getString("DESCRICAO"));
                    pedidoIten.produto.setId(rs.getInt("ID"));
                    pedidoIten.setFk_codigo_barra(rs.getInt("CODIGO_BARRA"));                               
                    return pedidoIten;
       }
    });
    
    } catch (EmptyResultDataAccessException e) {
        return null;
    }
   
}
public Produto procuraId(Produto produto ){

   try {
   String sql = "select * from PRODUTO as a where a.ID = ? ";
   return jdbctemplate.queryForObject(sql, 
           new Object[]{produto.getId()} ,new ProdutoMapper( ) );
    }catch(Exception e){
        JOptionPane.showMessageDialog(null,e.toString());
        return null;
    }
}

quando vou usar o método passando um produto não compila e apresenta esse erro
“no suitable method found for procuraId(Object)
method ProdutoDao.procuraId(PedidoIten) is not applicable
(argument mismatch; Object cannot be converted to PedidoIten)
method ProdutoDao.procuraId(Produto) is not applicable
(argument mismatch; Object cannot be converted to Produto)”

gostaria de saber aonde estou errando

Em qual linha é apontado o erro?

Mostre também o trecho em que você está chamando o método procuraId() da classe produto, pois a mensagem de erro dá a entender que o parâmetro que está sendo passado para esse método não é compatível com o esperado.

Obs: esse problema não parece ter relação com sobrecarga de métodos, então o título não parece estar coerente.

Abraço.

Falai @desenho128 Bom dia,

Posta aqui no forum as classes ProdutoDao e PedidoIten e o erro que esta sendo apresentado para podermos ajudar a dar uma solução melhor para o seu problema.

Att
Max

É porque você está chamando o método procuraId passando um Object ao invés de um PedidoIten.

Desculpa galera pela demora estava viajando e fiquei sem internet.

    produtos.forEach(produto ->{
        
        
        **Produto produtoTemp =  produtoDao.procuraId(produto);**
        PedidoIten pedidoIten = new PedidoIten();
        pedidoIten.setProduto();
        
    
    
    });

A linha que não compila e essa que esta marcado com **
O contexto e assim:
O usuário seleciona os produtos " índice,descrição,quantidade" que deseja eu armazeno esses produtos e um list de produtos e envio para a classe service. a service por sua vez trata os dados como representante e outras opções e faz esse for no list pegando cada produto na base e completando com as demais informações, para criar os itens do pedido coloquei no titulo do tópico sobrecarga de método porque estou passando como parâmetro um produto e ele deveria me retornar um produto mas ela informa que pedidoiten não pode ser convertido

Como você declarou essa variável produtos?

Boa valeu pela ajuda
nao tinha percebido mas no metodo eu coloquei errado

public void CriarPedidoDeVenda(List produtos,String representante,String cnpj,Pagamento pagamento,Desconto desconto,String observação )

e o correto seria

public void CriarPedidoDeVenda(List<Produto> produtos,String representante,String cnpj,Pagamento pagamento,Desconto desconto,String observação )

acho que esse e o problema de ficar olhando muito tempo pro mesmo código

1 curtida