Como reavaliar uma String?

8 respostas
C

como faço pra reavaliar uma String?

ex…

String s = new String("makako");

// aki a String s tem que ser reavaliada pois não quero instanciar um objeto MinhaClasse com o nome de s e sim com o valor da String, ou seja, makako.

MinhaClasse s = new MinhaClasse(); 

makako.setAlgumavar("lala");

não vai existir o objeto s e sim, vai existir o objeto makako… mais pra isso preciso de alguma função que reavalie a string s.

semelhante ao eval em algumas linguagens.

tem como? deve ter pq todas linguagens tem isso.

8 Respostas

V

Eu não entendi o que você quis dizer com reavaliar uma String.

Mas de qualquer jeito, ao invés de criar uma String assim:

String s = new String("makako");

crie assim:

String s = "makako";

Pois dessa segunda forma, você cria apenas um objeto String. Em Java, existe um mecanismo chamado de pool de Strings. Observe o código abaixo:

String s1 = new String("makako"); 
  String s2 = new String("makako"); 
  String s3 = new String("makako");

Esse código cria 4 objetos na memória. Um para o valor literal “makako” e mais um objetos para cada new que você faz. Agora observe este outro código:

String s1 = "makako"; 
  String s2 = "makako"; 
  String s3 = "makako";

Dessa vez, apenas 1 objeto será criado.

Entendeu?

A

“Celino”:
como faço pra reavaliar uma String?

ex…

String s = new String("makako");

// aki a String s tem que ser reavaliada pois não quero instanciar um objeto MinhaClasse com o nome de s e sim com o valor da String, ou seja, makako.

MinhaClasse s = new MinhaClasse(); 

makako.setAlgumavar("lala");

não vai existir o objeto s e sim, vai existir o objeto makako… mais pra isso preciso de alguma função que reavalie a string s.

semelhante ao eval em algumas linguagens.

tem como? deve ter pq todas linguagens tem isso.

kra, não entendi direito q vc quer, oq seria reavaliar a String?

R

vc quer transformar o conteudo de uma string num objeto?

É isso?

R

tipo assim: transformar “1 + 1” em 2?

até onde eu sei não tem nada pronto

B

xiiii agora que complicou mesmo …
eu nao entendi o que vc quer nao !
explica melhor ai

R

Oi!
Por acaso vc estaria queredo uma forma de vc setar uma string na sua classe sem ter que usar um método SET()??
Pelo menos é isso que eu estou entendendo de vc....
Esperimente isso:

public class minhaClasse extends String
{
    String qualquer;

    minhaClasse (String qualquer)
    {
        this.qualquer = super (qualquer);
    }
}

Pelo meos foi isso que eu entendi!

C

putz… nimguem entendeu…

vo mostrar uma classe em Action Script com adpatação em java (pacaba…)

class Reavaliando {

  String s = new String("flamerda");

  String s.eval() = String("corinthians");

  public Reavaliando() {
  System.out.println(s);
  System.out.println(flamerda);
 }
}

o resultado de uma instanciação dessa classe seria… duas “variaveis” s e flamerda… pq s e flamerda, pq na segunda declaração s foi reavaliado e foi instanciado uma nova string com com o nome de flamerda e não s.

o resultado no console seria…

flamerda
corinthians

se ainda ninmguem entender é pq num existe em java… :sad:

ai fudeu…

A

ah, agora entendi!!! :grin:
kra, na boa, não quero falar besteira, mas tentei fazer isso com Reflection e não consegui kra…
não sei se vai ter jeito não…
se alguém souber, postae…

[]'s

Criado 29 de setembro de 2004
Ultima resposta 1 de out. de 2004
Respostas 8
Participantes 7