String em linha de comando java

Tem alguma classe que eu possa utilizar uma String para executar um comando java?

Exemplo:
int at1= 10;
int at2= 20;
int at3= 30;

String resultado = “(at1+at2+at3)*5”;

Depois disso fazer com que essa String seja “executada”

executar como assim ? imprimir na tela ?

Se voce quer imprimir o resultado desta String basta usar System.out.println(resultado);

Só lembrando que ele nao vai fazer o calculo vai somente imprimir o que esta dentro da String…

Pra imprimir voce deveria fazer int resultado = (at1+at2+at3)*5

Eu quero que a String forme uma linha de comando, tipo como se a string fosse “System.out.println(resultado)” e eu executasse ela, fosse do mesmo jeito.
O que eu quero fazer é semelhante ao executeQuery() da conexão com o SQL, que a gente joga uma String no executeQuery() e ele executa a String no Query do Banco de Dados.

Aqui tem o que você procura.

Você também pode utilizar StringTokenizer

1 curtida

JuniorMaia, entendi o que você quis me passar, mas isso ainda não resolveu o que eu pedi.
Outro exemplo do que eu quero é tipo isso:
Digamos que eu tenha um jButton chamado jButtonAdd e eu tenho um método assim:

public void Teste(String nome){

// agora seria o que eu tô imaginando

TransformString transform = new TransformString();

transform.execute(nome+".setBackground(Color.BLUE)");

}

public static void main(String args[]) {
Teste(jButtonAdd);
}

E aí ele faz meu botão ficar azul.

Se entendi, você quer, por exemplo, executar um “System.out.println(“Olá”)”, que está armazenado em uma string ao clicar em um botão.

Se for isso, acredito que não seja possível, uma vez que os conteúdos armazenados nas strings do código não são “compilados”.

é isso mesmo Topoi
Que pena que não existe
Será que não tem algo semelhante?

Você deu este exemplo:

public void Teste(String nome) {
    TransformString transform = new TransformString();

    transform.execute(nome+".setBackground(Color.BLUE)");
}

public static void main(String args[]) { 
    Teste("jButtonAdd");
}

Gostaria de saber porque seu método Teste simplesmente não pode ter um JButton como parâmetro. Qual a necessidade de ser uma String? O que você quer fazer exatamente?

Dependendo da quantidade de comandos que quer executar, você poderia fazer com um switch. Algo assim não lhe seria útil?:

public void Teste(Object alvo, String operacao) {
    switch (operacao) {
        case "setBackground":
            alvo.setBackground(Color.BLUE);
            break;
        case "setText":
            alvo.setText("Meu texto");
            break;
        case "setIcon":
            alvo.setIcon(new ImageIcon());
            break;
        default:
            throw new OperacaoInvalida("A operação " + operacao + " é inválida!");
    }
}

Claro que isso seria um pesadelo se você quisesse suportar muitas operações. Mas diz aí qual seu objetivo.

1 curtida

wldomiciano, eu não tinha imaginado esse caso de passar como parâmetro o objeto, por isso dei este exemplo, tanto que agora há pouco fiz um tópico com esta dúvida. Meu objetivo era setar mudanças nos meus componentes mesmo. Agora já sei como fazer, muito obrigado!

1 curtida