9
respostas

ENUM do JAVA carregando no Angular

Tenho este enum no JAVA.

package br.com.netsoft.desif.enuns;

public enum TipoArquivoEnum {

    ESTRUTURA("Estrutura", "ESTRUTURA"), LOGICA("Lógica", "LOGICA"), FINALIZADO(
            "Finalizado", "FINALIZADO");

    private String descricao;
    private String codigo;

    private TipoArquivoEnum(String descricao, String codigo) {
        this.descricao = descricao;
        this.codigo = codigo;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    @Override
    public String toString() {
        return descricao;
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }
}

Como fazer que o Angular o carregue ?

9 respostas

Oi Guilherme, tudo bem? O Angular não vai conseguir ler sua classe em Java. São duas linguagens bem diferentes. O que você pode fazer é ter um endereço na sua API que retorne os valores do ENUM, e assim consumir os valores via requisição.

Pegou a ideia?

Mesmo pensamento de consulta a banco de dados então, fica factory ?

Porque io java entende que o valor é uma String e não ENUM.

Opa, sim, String, no geral, o conceito de ENUM no java, só vai valer dentro do Java em si, é uma estrutura que o Java entende, Angula por exemplo, não vai ver o ENUM do Java como um ENUM.

A partir do momento que você decide transportar coisas de um ambiente para o outro: Java para JavaScript/Angula/React ou mesmo qualquer outra linguagem, eles precisam estar em um formato comum que os dois lados entendam.

O formato comum pode ser String, XML, JSON. No geral, na verdade é tudo String, a formatação é que você pode escolher. Formatar essa String como XML ou JSON são opções do que simplesmente jogar o texto cru. Eu recomendaria JSON já que é muito mais fácil de trabalhar com ele no JavaScript.

Até que mostrar o ENUM do JAVA JSON , no Javascritpt, html, angular, etc, eu consegui.

Agora é ao contrário.

Para todo ENUM, tenho que ter uma variável do tripo String ou Inteiro, dependendo de como gravo o ENUM, e fazer a conversão.

Queria algo direto ou fazer uma função generica, já que são muitos ENUM.

Eu não sei muito bem como você vai fazer isso Guilherme, mas a dica é que você crie uma classe que converte para os dois lados. Assim você centraliza essa conversão em um ponto central e faz uso quando necessário.

No geral, quando você integra dois ambientes diferentes como Angula (JavaScript) e Java você vai precisar desse meio de campo. Até mesmo entre aplicações usando Java, porém em ambientes diferentes como Android e Java Web, ou Java Web e Desktop.

Mas até para html e java, eu não consegui.

Mas entendi o que vc disse.

Tenta fazer isso e depois informa aqui se deu certo!

Pode deixar