1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Formas de invocação de Metodos Em Java

Discussão em 'Programação' iniciada por KumanduS, 13 de Maio de 2008. (Respostas: 7; Visualizações: 1154)

  1. KumanduS

    KumanduS Power Member

    Boa Tarde a Todos,
    Estou a fazer um trabalho para uma aula, já esta tudo feito e agora estou a optimizar o projecto.
    O meu "run" tem de chamar 7 métodos (que fazem todos mais ou menos a mesma coisa mas que têm de ser obrigatoriamente 7), eu queria evitar repetir o mesmo código:
    fundo.filledRectangle(0 , 0 , 600 , 500 , 0 ,0 ,0, 255);
    minhaArvore.arvore1(200);
    fundo.writeImageToPNG("arvore1.png")
    uma vez, que as únicas diferenças entre as próximas linhas será o nome do método (arvore1(2,3...)) e o nome do ficheiro (arvore1.png). Pensei em usar um ciclo através do uso de um array de string com o nome de métodos (contudo o java não aceita), também sei que posso fazer um switch e com um for posso chamar esses mesmo métodos. Mas contudo gostaria de saber se existe outras formas de invocar métodos ou manipula-los.
    Obrigado
     
    Última edição: 13 de Maio de 2008
  2. AliFromCairo

    AliFromCairo Power Member

    Boas, podes usar a API de reflexão do Java. A ideia é pegares no nome do método, obteres um objecto do tipo Method e invocares. Podes ver uns exemplos aqui, ou procura na web por "Java Reflection", pois devem existir bastantes tutoriais.

    No entanto, aconselhava-te a tentares generalizar o tal método que faz praticamente a mesma coisa, antes de partir para a reflexão.
     
  3. KumanduS

    KumanduS Power Member

    Obrigado pela tua ajuda tão rápida, vou verificar o link que me forneces-te!Não posso generalizar uma vez que as 7 classes são requisitadas!por acaso nem nunca tinha ouvido falar dessa dica obrigado
     
  4. arkannis

    arkannis Power Member

    Boas colega,
    Sinceramente, se queres um concelho: Não uses nada disso.
    É uma matéria que sai completamente fora do âmbito da cadeira e que nunca foi dada e não é um truque propriamente simples, logo não esperes ter o trabalho valorizado por causa disso. Aliás, o mais provavel é o prof descontar-te um bocado na nota por achar que complicaste sem necessidade nenhuma.

    Faz isso assim repetidamente, fica um bocado longo e eventualmente feio, mas o prof não pode descontar por isso. Para o que é, serve muito bem, até porque como deves ter percebido no enunciado a classe Run tem uma importância minima (em termos de nota) neste trabalho.

    Cumprimentos
     
  5. KumanduS

    KumanduS Power Member

    Antes que mais queria agradecer as dicas que me foram Dadas!
    Hoje fui apresentar o trabalho e embora tenha conseguído resolver o problema através da class reflect, não o usei com base no que o arkannis disse. Mas de qualquer forma deu para aprender e julgo que este "truque" me vai ser bastante útil no futuro!
    Obrigado a todos
     
  6. arkannis

    arkannis Power Member

    É isso mesmo ;)
    O que interessa é um gajo ir aprendendo uns truques novos, mesmo que não sejam para usar agora nos trabalhos da faculdade.
     
  7. AliFromCairo

    AliFromCairo Power Member

    Sim, talvez para o teu caso a API de reflexão não seja o ideal. No entanto, penso que é uma técnica fundamental, que é tipicamente utilizada para geração de código, bem como em certos padrões de desenho como o Abstract Factory.
     
  8. KumanduS

    KumanduS Power Member

    abstract factory?!! Pois ainda me falta saber muitas coisas, mas também só estou no primeiro ano!Mas gosto de andar sempre a inventar e a ver código para aprender!Agora estou a "aprender" a fazer quadros e botões!
     

Partilhar esta Página