Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

tem algo como Object.keys() em Java??

Estou precisando extraer os atributos de um objeto (presumo que não conheço os atributos desse objeto). Tem algo parecido com o Object.keys(obj) de JavaScript??

1 resposta
solução!

Oii, tudo bem?

Em Java, não há uma função nativa como o Object.keys() do JavaScript para extrair os atributos de um objeto. Mas, você pode obter os campos de uma classe usando reflection.

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // Criar um objeto de exemplo
        ExemploObjeto obj = new ExemploObjeto();

        // Obter os campos do objeto
        List<String> campos = obterCampos(obj);

        // Imprimir os campos
        for (String campo : campos) {
            System.out.println(campo);
        }
    }

    public static List<String> obterCampos(Object obj) {
        List<String> campos = new ArrayList<>();
        // Obter a classe do objeto
        Class<?> classe = obj.getClass();
        // Obter todos os campos declarados na classe, incluindo campos privados
        Field[] declaredFields = classe.getDeclaredFields();
        // Adicionar o nome de cada campo à lista
        for (Field field : declaredFields) {
            campos.add(field.getName());
        }
        return campos;
    }
}

class ExemploObjeto {
    private int atributo1;
    public String atributo2;
    protected double atributo3;
}

Assim, a classe Main cria um objeto ExemploObjeto e, em seguida, chama o método obterCampos() para obter uma lista dos campos desse objeto usando reflection. Note que esta abordagem pode não retornar os campos na ordem esperada, como o Object.keys() em JavaScript.

Espero ter te ajudado.

Um abraço e bons estudos.