Passando classe como parametro

2 respostas
L

Opa, baum?

To com uma duvida aqui, existe alguma forma de eu passar um objeto de uma classe, ou mesmo a classe pra um método e criar nesse método um novo objeto dessa classe?

Humm, txo ve se consigo explicar melhor com exemplo.

Eu tenho uma classe abstrata A e derivo dela as classes B e C.

Eu tenho um array de objetos A.

Vou passar pra um método o índice do array e um objeto ou da classe B ou da classe C e quero que o objeto do array no índice especificado receba uma nova referência pra classe que foi passada.

Deu pra entender??

Humm, espero q sim.

Existe como fazer isso?

Valeu. :smiley:

2 Respostas

B

Bom, deixa ver se entendi: você quer instanciar objeto em runtime, se for tem como fazer sim, olhe o exemplo:

public abstract class A{...}
public class B extends A{...}
public class C extends A{...}

public class Exemplo{
  public static final Class[] ARRAY = {B.class,C.class};
 
  ...

   public A instanceiaObject(int index){
      try{
          return (A) ARRAY[index].newInstance();
       }catch(Exception e){}
   }

Eu coloquei o ARRAY como class, mas pode colocar como A[], mas ai na hora de chamar o método “newInstance()” você tem que fazer:

return (A) ARRAY[x].class.newInstance();

Não testei a segunda opção, mas tenho quase certeza que funciona.

Valeu, qq só postar…

L

valeu Bruno, mto obrigado mesmo :slight_smile:

Criado 21 de fevereiro de 2005
Ultima resposta 26 de fev. de 2005
Respostas 2
Participantes 2