Thread initialization using runnable interface

Asked

Viewed 259 times

1

I’m having a problem creating some threads:

The mistake is:

"The method Actualizprodutorunnable(Affiliate, List, Arraylist) is Undefined for the type Home"

in Main Class:

for (Filial filial : listaFiliais) {
        Thread threads = new Thread(AtualizaProdutoRunnable(filial, listaProduto, listaVendas));
        threads.start();
    }

in the Present class:

    package negocio;

import java.util.ArrayList;
import java.util.List;

public class AtualizaProdutoRunnable implements Runnable {

    private Filial filial;
    private List<Produto> listaProduto = new ArrayList<Produto>();
    private ArrayList<Venda> listaVenda = new ArrayList<Venda>();

    public AtualizaProdutoRunnable(Filial filial, List<Produto> listaProduto, ArrayList<Venda> listaVendas) {
        super();
        this.filial = filial;
        this.listaProduto = listaProduto;
        this.listaVenda = listaVendas;
    }

    @Override
    public void run() {
        for (Venda venda : listaVenda) {
            if (venda.getFilial().getCodigo() == filial.getCodigo()) {
                Produto produtoVenda = venda.getProduto();
                for (Produto produto : listaProduto) {
                    if (produtoVenda.getCodigo() == produto.getCodigo()) {
                        if (produto.getQuantidade_estoque() - 1 >= produto.getQuantidade_minima()) {
                            produto.setQuantidade_estoque(produto.getQuantidade_estoque() - 1);
                            System.out.println("Produto: " + produto.getNome() + " da filial " + filial.getNome() +" da venda "+ venda.getCodigo() + " Foi decrementado!");
                        }
                    }
                }
            }
        }
    }

}

Can someone explain to me what I have to do?

  • 1

    Add the code of the class where the method is AtualizaProdutoRunnable.

  • 1

    But wait, AtualizaProdutoRunnable in your code does not implement Runnable, not only put in the name and ready, you have to meet the "contract" interface, which in this case is implement the method run. new there, the same error message says that AtualizaProdutoRunnable is being recognized as method and not object: Thread threads = new Thread(AtualizaProdutoRunnable(filial, listaProduto, listaVendas));

  • 2

    Missing one new before AtualizaProdutoRunnable: new Thread(new AtualizaProdutoRunnable(...)).

  • @Renan I’m feeling like an idiot, thank you very much

  • @Taq guy I’m really ashamed of my mistake having been something so small so thank you so much for your time

  • Gives nothing. :-)

Show 1 more comment
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.