Porque precisa usar reflection?
Você já tem a instância da sua classe, é o objeto que você chamou de produto.
Para obter o estoque é só chamar o método getEstoque() desse objeto.
K
kenew
Eu sempre vou saber a primeira Class, mas as subclasses podem mudar no caso de produtos, tenho Estoque, Tabela, WA e etc, no caso de clientes, tenho endereco, transportadora e etc.
Partindo da primeira Class quero pegar as outras, como neste caso:
String[] as = {“Codigo”, “Nome”, “Estoque.Quantidade”, “Tabela.Custo”, “WA.Quadra”};
Não quero usar switch ou if else
S
staroski
Veja se o código abaixo te ajuda a entender como fazer:
ProdutoobjetoProduto=newProduto();objetoProduto.setEstoque(newEstoque());Class<?>classeProduto=objetoProduto.getClass();MethodmetodoGetEstoque=classeProduto.getMethod("getEstoque");ObjectobjetoEstoque=metodoGetEstoque.invoke(objetoProduto);// obtendo a instância de Estoque a partir da instância de ProdutoClass<?>classeEstoque=metodoGetEstoque.getReturnType();MethodmetodoGetQuantidade=classeEstoque.getMethod("getQuantidade");Objectquantidade=metodoGetQuantidade.invoke(objetoEstoque);
D
darlan_machado1 like
Depois de tantos anos nessa indústria vital… Eu aprendi que nem toda generalização é boa.
Talvez o ideal seja você tratar cada caso de acordo com o que cada caso necessitar.
K
kenew
Staroski era isso mesmo que eu precisava… o secredo era usar o invoke antes durante e depois rsrsrs
vc é o cara !
darlan_machado concordo em partes na questao da generalização e concordo plenamente no caso de casa caso ser um caso. rs