List

3 respostas Resolvido
java
G

Boa tarde!

Estou estudando pela apostila da caelum, e no capitulo de Java.IO, em determinado exercício, é criado o seguinte código:

List<Conta> contas = evento.getLista("listaContas");

Porém o código não compila e o eclipe, como correção, sugere, a opção de Remove type Arguments. Poderiam me ajudar?

package br.com.caelum.contas;

import br.com.caelum.javafx.api.util.Evento;

import java.awt.List;
import java.util.ArrayList;
import java.util.Collections;

import br.com.caelum.contas.modelo.Conta;
import br.com.caelum.contas.modelo.ContaCorrente;
import br.com.caelum.contas.modelo.ContaPoupanca;

public class ManipuladorDeContas {
	
	Conta conta = new Conta();
	
	public void criaConta(Evento evento) {
		String tipo = evento.getSelecionadoNoRadio("tipo");
			if (tipo.equals("Conta Corrente")) {
				this.conta = new ContaCorrente();
			} else if (tipo.equals("Conta Poupança")) {
				this.conta = new ContaPoupanca();
			}
		this.conta.setTitular(evento.getString("titular"));
		this.conta.setAgencia(evento.getString("agencia"));
		this.conta.setNumero(evento.getInt("numero"));
	}
	
	public void deposita(Evento evento) {
		double valorOperacao = evento.getDouble("valorOperacao");
		this.conta.deposita(valorOperacao);
	}
	
	public void saca(Evento evento) {
		double valorOperacao = evento.getDouble("valorOperacao");
		this.conta.saca(valorOperacao);
	}
	
	public void transfere(Evento evento) {
		Conta destino = (Conta) evento.getSelecionadoNoCombo("destino");
		conta.transfere(evento.getDouble("valorTransferencia"), destino);
	}
	
	public void ordernaLista(Evento evento) {
		List<Conta> contas = evento.getLista("destino");
		Collections.sort(contas);
	}
	
	public void salvaDados(Evento evento) {
		List<Conta> contas = evento.getLista("listaContas");
		RepositorioDeContas repositorio = new RepositorioDeContas();
		repositorio.salva(contas);
	}

}

Obrigado!

3 Respostas

Jothar_Aleksander
Solucao aceita

Eu observei que tu está utilizando o método List do pacote java.awt.List (java.awt.List). No entanto, para lista de dados, usa-se a interface List<> do pacote java.util.List (java.util.List). Corrija essa importação que vai resolver o seu problema.

G

Bom dia!

Deu certo o import. Muito obrigado! Só não entendi, porque o Eclipse não sugeriu isto…

staroski

Provavelmente você digitou List, deu um ctrl + espaço e selecionou a primeira opção que apareceu, que foi o java.awt.List.
O eclipse não tem como “adivinhar” que você fez o import do pacote errado.
Como você importou java.awt.List e tentou declarar uma variável dela com generics e ela não é uma classe genérica, ele pediu pra você remover o <Conta>.

Dica:
Você também pode fazer assim no eclipse: selecionar a expressão evento.getLista("listaContas"), pressionar ctrl + 1 e escolher a opção de atribuir o valor à uma nova variável local, aí ele fará o import correto.

Na minha opinião, a tecla de atalho ctrl + 1 é a melhor amiga do desenvolvedor que utiliza eclipse, pois ela te apresenta uma série de opções sempre relacionados à posição do cursor ou ao conteúdo selecionado. :smiley:

Criado 11 de setembro de 2019
Ultima resposta 12 de set. de 2019
Respostas 3
Participantes 3