Mas voce pode usar o JavaAssist para modificar os bytecodes e invokar via Reflection… por que mesmo alterado na hora da compilação os métodos não existem o que vai resultar em um erro de compilação.
[quote=GioJackson][quote=Jesuino Master]Acho que ele quer que uma String se torne o nome de uma variável, atributo!
Semelhante ao que é possível fazer em ActionScript…
É isso??
Se for, penso que não é possível, vou acompanhar o tópico![/quote]
AEEE Jesuinooo! finalmente alguem com cérebro… Pelamor!! os kara ai em cima num devem nem te lido o título
eh isso aii… colocar parte de uma string como sendo o nome de una variabllee!!
floww[/quote]
Amiguinho,
Todos aqui tem cérebro.
Utilizar esse tipo de funcionalidade é muito fácil em uma linguagem de scripting, como ActionScript ou Javascript, que são interpretadas em tempo de execução, mas não existe esse tipo de recurso em Java que é uma linguagem compilada.
O que eu acho mais apropriado para você é utilizar um mapa…
public static Map<String, Object> mapa = new HashMap<String, Object>();
public static void main(String args[]){
mapa.put("Planta", new Planta());
mapa.put("Bola", new Bola());
create("Planta");
}
//.....................................
public void create(String nome) {
Planta p = mapa.get(nome);
}
Que nada, simplesmente tive muita necessidade disso também quando vim de ActionScript para Java. Depois vi que com a perfeição de Java, sempre existe um solução para estes problemas!
Com certeza! Em ActionScript não podemos viver sem isso ae, pois muitos clipes são gerados em runtime e temos que referenciar através de um padrão. Uma coisa que fazem em jogos, por exemplo, é gerar diversas instâncias de um MovieClipe através de loops, depois, a cada evento, sair verificando todas com um for semelhante ao que gerou os MovieClips… Haja imaginação!
Bem, mas o fórum é de Java, hehe.
Mas assim teríamos todos os objetos carregados na memória sem uso!
Ou você pode usar a Composição e dar um comportamento misto para um mesmo objeto! Mudando em Runtime esse comportamento, ou seja, Delega a atividade para uma interface, e faz classes concretas para conseguir diversos comportamentos. Isso, ele mesmo, Strategy
Resumindo, você pode ter um método que leia uma String e gere um determinado objeto, ou você envia uma String para um método que muda o comportamento de uma classe.
Mas o que você deve fazer mesmo é ver se não há outra solução. Envie detalhes do seu problema e assim poderemos encontrar uma solução legal!
Pessoal, desculpem por ressussitar o tópico, mas como o autor não voltou a perguntar acredito que eu possa esclarecer um problema que está me encomodando há algum tempo:
Seguinte, o que eu preciso é ler um xml e pegar o valor das tags (ler o xml não é a parte importante aqui, ja que acredito que possa fazer isso de várias maneiras) e atribuir em atributos de um DTO (ou variável que seja)… assim:
private String nomePessoa;
private String idadePessoa; //pode ser String mesmo que ja serve muuuuito bem
private String tipoDocto;
private String numDocto;
//Aqui getters e setters
Então… Usar o conteúdo do parâmetro “nome” do xml pra setar os atributos do DTO com o mesmo nome (ou variáveis quaisquer com o mesmo nome) seria possível? Se sim, como?