Olá a todos!
Espero que estejam bem!
Estou modificando um código antigo que trabalhava com vetores para trabalhar LinkedList, está dando o seguinte erro:
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The left-hand side of an assignment must be a variable
at Caixa.novaVenda(Caixa.java:26)
at Loja.executar(Loja.java:24)
at Loja.main(Loja.java:14)
Não estou conseguindo descobrir com tirá-lo.
Segue em anexo o código:
public class Caixa {
private int vendaAberta = -1;
private LinkedList<Venda> vendas;
private int quantidade;
public Caixa() {
vendas = new LinkedList<Venda>();
}
public void adicionarProduto(Produto produto) {
vendas.get(vendaAberta).adicionarProduto(produto);
}
public Venda novaVenda() {
vendaAberta++;
vendas.get(vendaAberta) = new Venda(1);
quantidade++;
return vendas.get(vendaAberta);
}
}
public class Cliente {
private String nome;
private String endereco;
public Cliente(String nome, String endereco) {
this.nome = nome;
this.endereco = endereco;
}
public Cliente(String nome) {
this.nome = nome;
}
public Cliente() {
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return this.endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String imprimeCliente() {
return "Cliente: " + this.nome + "\n Endereco: " + this.endereco;
}
}
import java.io.PrintStream;
import java.util.*;
public class Loja {
public static void main(String[] args) {
Loja programa = new Loja();
programa.executar();
}
private final Scanner input = new Scanner(System.in);
private final PrintStream saida = System.out;
public void executar() {
Caixa caixa = new Caixa();
while(continuarVendendo()) {
Venda venda = caixa.novaVenda();
Cliente cliente = informarCliente();
venda.setCliente(cliente);
informarProdutos(venda);
}
}
private boolean continuarComprando() {
saida.print("Adicionar produto? [S/N]: ");
String resposta = input.nextLine();
saida.println(" ");
return "S".equalsIgnoreCase(resposta);
}
private boolean continuarVendendo() {
saida.print("Efetuar nova venda? [S/N]: ");
String resposta = input.nextLine();
return "S".equalsIgnoreCase(resposta);
}
private Cliente informarCliente() {
saida.print("Nome do cliente: ");
String nome = input.nextLine();
saida.print("Endereco do cliente: ");
String endereco = input.nextLine();
return new Cliente(nome, endereco);
}
private void informarProdutos(Venda venda) {
while (continuarComprando()) {
saida.print("Informe o produto desejado: ");
String iten = input.nextLine();
saida.print("Informe o pre�o do produto: ");
double preco = Double.parseDouble(input.nextLine());
Produto produto = new Produto(iten, preco);
venda.adicionarProduto(produto);
saida.println();
saida.println(produto.getDescricao() + " adicionado ao carrinho");
saida.println();
saida.println("Conte�do do carrinho:");
for (int i = 0; i < venda.numProdutos(); i++) {
produto = venda.produto(i);
saida.println(" " + produto.getDescricao() + " Preco: " + produto.getPreco());
}
saida.println(" ");
saida.println(" ");
}
}
}
public class Produto {
private String descricao;
private double preco;
private int total;
public Produto(String descricao, double preco) {
this.descricao = descricao;
this.preco = preco;
}
/**
* @return the descricao
*/
public String getDescricao() {
return descricao;
}
/**
* @return the preco
*/
public double getPreco() {
return preco;
}
public double getTotal() {
return total++;
}
/**
* @param descricao the descricao to set
* @return
*/
public void setDescricao(String descricao) {
this.descricao = descricao;
}
/**
* @param preco the preco to set
*/
public void setPreco(double preco) {
this.preco = preco;
}
@Overrider
public String toString(String descricao) {
return "Produto: " + this.descricao;
}
}
public class Venda {
double total;
private Date data;
private Cliente cliente;
private LinkedList<Produto> produtos;
private int numProdutos;
public Venda(Date data, Cliente cliente, LinkedList<Produto> produtos) {
this.data = data;
this.cliente = cliente;
this.produtos = produtos;
}
public Venda(LinkedList<Produto> produtos) {
this.produtos = produtos;
}
public Venda(int qtdMaxProdutos) {
this(new LinkedList<Produto.get(qtdMaxProdutos)>);
}
public void adicionarProduto(Produto produto) {
produtos.get(numProdutos) = produto;
numProdutos++;
}
public Produto produto(int posicao) {
if (posicao < 0) {
throw new IllegalArgumentException(posicao + " uma posicao invalida");
}
if (posicao >= numProdutos) {
throw new IllegalArgumentException(
posicao + " uma posicao invalida" + numProdutos + " elementos no vetor");
}
return produtos.get(posicao);
}
public int numProdutos() {
return numProdutos;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public double total() {
double total = 0;
for (int i = 0; i < numProdutos; i++) {
total += produtos.get(i).getPreco();
}
return total;
}
public String toString(int i) {
return data + " " + cliente.getNome() + " " + cliente.getEndereco() + " " + produtos.get(i).getDescricao() + " "
+ produtos.get(i).getPreco();
}
}
identar texto pré-formatado por 4 espaços