Printar todos

Pessoal tenho o seguinte código:

    do {
        Empresa e = new Empresa();
        e.setNome(Keyin.inString("DIGITE O NOME: "));
        e.setEndereco(Keyin.inString("DIGITE O ENDERECO: "));
        e.setCnpj(Keyin.inString("DIGITE O CNPJ: "));
        e.setRamoAtividade(Keyin.inString("DIGITE O RAMO DA ATIVIDADE: "));
        e.setQuantidadeFuncionario(Keyin.inInt("DIGITE A QUANTIDADE DE FUNCIONARIO PARCEIRO: "));
        e.setContatoFuncionario(Keyin.inString("DIGITE O CONTATO DO FUNCIONARIO: "));
        e.setValorHora(Keyin.inDouble("DIGITE O VALOR POR HORA: "));
        System.out.println("DIGITE O TIPO DE PARCEIRO CONFORME LISTADO:");
        e.setTipoParceiro(Keyin.inInt("DESENVOLVIMENTO(1), INFRAESTRUTURA(2), VENDAS(3), CONTABILIDADE(4)"));

        listEmpresa.add(e);
        System.out.println("|      MENU CADASTRO      |");
        System.out.println("| OPCOES:                 |");
        System.out.println("|   1. CADASTRO EMPRESA   |");
        System.out.println("|   2. SAIR               |");
        swValue = Keyin.inInt(" SELECIONE A OPCAO: ");

    } while (swValue == 1);
    System.out.println("CADASTRO REALIZADO COM SUCESSO!");
    System.out.println();

Como faço para colocar no ultimo System.out.println(); todos os setters do DO?
PS: Sou muito leiga em java.

Primeiro, formate o texto corretamente: Selecione seu código e clique em </>, na sua caixa de ferramentas.

Segundo, por que você colocaria setters num método de impressão?

Primeiro, eu coloquei na formatação e não ta indo.
Segundo, eu quero mostrar o que o usuário escreveu, para provar que o que ele escreveu consta ali. Preciso listar o cadastro realizado

Entendi. Arrumei.

Tá, então você pode estar querendo imprimir as informações da empresa cadastrada. Você tem dois jeitos:

  • Sobrescrever o método toString() dá sua classe Empresa;
  • Usar os métodos getters da classe Empresa para PEGAR AS INFORMAÇÕES que foram cadastradas.

Creio que você quer listar propriedades de seus objetos cadastrados, setter nada mais é do que o nome dado aos métodos com prefixo set.

Basicamente você vai trocar seu último println por algo assim:

for (Empresa empresa : listEmpresa) {
    System.out.println( empresa.getUmaCoisa() );
    System.out.println( empresa.getOutraCoisa() );
    System.out.println( empresa.getQualquerCoisa() );
}

Basicamente você vai trocar seu último println por algo assim:

for (Empresa empresa : listEmpresa) {
    System.out.println( empresa.getUmaCoisa() );
    System.out.println( empresa.getOutraCoisa() );
    System.out.println( empresa.getQualquerCoisa() );
}

Eu já fiz assim, mas ficou muito extenso, não tem outra forma que gaste menos linha?

Essa ideia de “menos linha = melhor código” é bem ultrapassada e, para ser sincero, incorreto. Mas se é de sua vontade, pesquise sobre “reescrever método toString de uma classe”, vai te ajudar muito.

1 curtida

Eu não disse em momento algum que é melhor, é uma opção minha querer escrever menos. Por favor, se não for falar algo que não vá ajudar a resolver o meu problema, é melhor nem gastar seu tempo.

Vou pesquisar, muito obrigada.

Muitas formas de fazer:

for (Empresa empresa : listEmpresa) {
    System.out.println( empresa.getUmaCoisa() + "  " + empresa.getOutraCoisa() + "  " + empresa.getQualquerCoisa() );
}

Ou se sobrescrever o método toString() da classe Empresa para retornar o texto que você quiser:

for (Empresa empresa : listEmpresa) {
    System.out.println( empresa );
}

Dá até para fazer:

listEmpresa.forEach(System.out::println);

Se estiver no Java 8+.

1 curtida

Obrigada, resolveu meu problema!