GARANTIR DESCONTO

Fórum instanciar uma classe passando como referência o nome dela! #569840

09/04/2009

0

Há alguma forma de instanciar classes passando o nome da classe por parâmetro??? vcs podem achar que estou maluco mas eu realmente preciso disso!! tipo , queria chegar a um resultado assim:
 InstanciaClasse(String nomeDaClasse)
{
    nomeDaClasse instancia = new nomeDaClasse();
}
:arrow: :arrow: :arrow:
Carlos Barretto

Carlos Barretto

Responder

Posts

09/04/2009

Carlos Barretto

[quote="carlosbarretto"]Há alguma forma de instanciar classes passando o nome da classe por parâmetro??? vcs podem achar que estou maluco mas eu realmente preciso disso!! tipo , queria chegar a um resultado assim:
 InstanciaClasse(String nomeDaClasse)
{
    nomeDaClasse instancia = new nomeDaClasse();
}
:arrow: :arrow: :arrow:
Object o = Class.forName("pacote.pacote1.nomeDaClasse").newIstance();
Porém a classe deve implementar um construtor default (sem argumentos). :!:
Responder

Gostei + 0

09/04/2009

Bruno Borges

[quote="volnei"]
Object o = Class.forName("pacote.pacote1.nomeDaClasse").newIstance();
Porém a classe deve implementar um construtor default (sem argumentos). :!:
nao necessariamente... :) reflection r0x
Responder

Gostei + 0

09/04/2009

Bruno Borges

[quote="miojo"][quote="volnei"]
Object o = Class.forName("pacote.pacote1.nomeDaClasse").newIstance();
Porém a classe deve implementar um construtor default (sem argumentos). :!:
nao necessariamente... :) reflection r0x
Bem lembrado Miojo, você pode através de reflection pegar os construtores de uma classe e criá-la com o construtor que você quiser passando os parâmetros... :!: reflection rOx a lot! :!:
Responder

Gostei + 0

09/04/2009

Carlos Barretto

certo, e como acesso os atributos deste objeto depois??
Responder

Gostei + 0

09/04/2009

Carlos Barretto

Bom aí acho melhor você dar uma olhadinha na API Reflection.. :!:
Responder

Gostei + 0

09/04/2009

Carlos Barretto

[quote="volnei"]
Object o = Class.forName("pacote.pacote1.nomeDaClasse").newIstance();
mas neste caso o Object "o" não recebe a instancia????
Responder

Gostei + 0

09/04/2009

Asdfasdfa

Tutoriais....... [url=http://www.javafree.com.br/forum/viewtopic.php?t=1393]Reflections em Java[/url] [url=http://www.javafree.com.br/forum/viewtopic.php?t=1394]Reflections em Java 2[/url] Reflection r0x :o :o :o []'s
Responder

Gostei + 0

09/04/2009

Lucas Teixeira

Volnei... acho que ele queria criar nao um objeto de uma determinada classe.... e sim a referencia... tipo assim
public void passaReferencia(String str) {

   String 'str' = new String("lucas");
}
acho que eh isso... q ele queria definir o nome da referencia, e nao do objeto.. :/
Responder

Gostei + 0

09/04/2009

Carlos Barretto

vou explica melhor! tenho uma classe Despesa que precisa instanciar Compra e tenho uma classe Aluno que precisa instanciar Endereco mas ´preciso usar a mesma chamada para as duas mas com parametros diferentes do tipo
instancia = criarInstancia("Compra");

instancia = criarInstancia("Endereco");
é meio maluco mas acreditem preciso disso!
Responder

Gostei + 0

09/04/2009

Carlos Barretto

e o resultado tem que ser como se eu fizesse
Compra instancia = new Compra();

Endereco instancia = new Endereco();
Responder

Gostei + 0

09/04/2009

Carlos Barretto

é.... realmente eu me confundi.... é com reflection msm... :?
Responder

Gostei + 0

09/04/2009

Fábio Guimarães

Talvés isto:
public class Teste {
  
  public static Object getClass (String nameClass) {
    try {
      return (Class.forName(nameClass)).newInstance();
    }
    catch (Exception ex) {
      ex.printStackTrace();
      return null;
    }
  }

  public static void main(String args[]) {
    String name = (String)getClass("java.lang.String");
    name = "JavaFree";
    System.out.println(name);
  }
}
Responder

Gostei + 0

09/04/2009

Carlos Barretto

[quote="JavaTeco"]Talvés isto:
public class Teste {
  
  public static Object getClass (String nameClass) {
    try {
      return (Class.forName(nameClass)).newInstance();
    }
    catch (Exception ex) {
      ex.printStackTrace();
      return null;
    }
  }

  public static void main(String args[]) {
    String name = (String)getClass("java.lang.String");
    name = "JavaFree";
    System.out.println(name);
  }
}
valeu, vou tentar resolver a partir deste exemplo, quaslquer resultado posto aqui!!
Responder

Gostei + 0

09/04/2009

Fábio Guimarães

Se vc quiser passar parâmetros para construtor ou chamar métodos, seria interessante criar uma classe, onde por exemplo, vc adiciona parâmetros para um determinado método.
Responder

Gostei + 0

09/04/2009

Carlos Barretto

[quote="JavaTeco"]Se vc quiser passar parâmetros para construtor ou chamar métodos, seria interessante criar uma classe, onde por exemplo, vc adiciona parâmetros para um determinado método.
blz, realmente o que eu perguntei deu certo!!!! Obrigado a todos que me ajudaram!! e principalmente ao exemplo prático do Java Tico,, ops... Java Teco... hehehehe :!:
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar