Eduardo, fui programador clipper por algum tempo e por isso acho que fica
mais f�cil eu entender sua necessidade. Percebi que sua inten��o � a de
postergar a execu��o de um trecho de c�digo (tipicamente uma fun��o) para o
momento da execu��o, ou seja, um comportamento din�mico. Em Java voc� pode
utilizar-se de uma API (Java Reflection ) em java.lang.reflect que te
deixa, em tempo de execu��o, carregar uma classe e criar inst�ncias dela. N�o s�
isso, voc� tamb�m pode inspecionar e executar m�todos, n�o te parece
interessante ? Creio que � perfeitamente fact�vel utilizar esse conceito no teu
caso espec�fico. Desde armazenar par�metros de instancia��o at� a
classes completas no banco de dados, depende do teu problema particular.
Quanto ao parser, creio que ele existir� de qualquer forma j� que voc� ter� que
traduzir a express�o em a��es din�micas (via reflection).
Te
passo um esbo�o de uma r�pida id�ia que tive agora e que pode te ajudar de
alguma forma... O modelo abaixo parece ser complexo demais para o teu caso
(matar uma mosca com uma bala de canh�o) por�m � tamb�m mais poderoso tendo em
vista que voc� pode definir opera��es e fun��es de qualquer natureza.
Da� minha observa��o quanto ao adequa��o ao seu
problema.
O
agrupamento de um conjunto de opera��es em uma �rvore poder� te ajudar a ter
express�es com v�rios operandos e operadores. Isso n�o foi descrito
abaixo.
public
class Funcoes
{
public int funcao1()
{
...
}
public int funcao2()
{
...
}
...
public int funcaoN()
{
...
}
}
public
interface Operador
{
public int executaOperacao( Method m1, Method m2
);
}
public
class Soma implements Operador
{
public int executaOperacao()
{
// uso de reflection para execu��o
dos m�todos m1 e m2 aplicando a opera��o de Soma
}
}
public class CartaoCreditoValido implements
Operador
{
...
}
...
public
class DigitoVerificadorValido implements Operador
{
...
}
...
Ajudei ?
Marc�lio
Mendon�a.
-----Mensagem original-----
De: [Carlos H.] [mailto:[EMAIL PROTECTED]]
Enviada em: Tuesday, November 20, 2001 9:16 PM
Para: [EMAIL PROTECTED]
Assunto: Re: [java-list] DUVIDAS DE INICIANTE (SOCORRO)
De: [Carlos H.] [mailto:[EMAIL PROTECTED]]
Enviada em: Tuesday, November 20, 2001 9:16 PM
Para: [EMAIL PROTECTED]
Assunto: Re: [java-list] DUVIDAS DE INICIANTE (SOCORRO)
Ola Eduardo
Bem... eu nao tenho conhecimento de nenhum m�todo desse tipo, e se isso existe, gostaria de conhecer tambem! ;)
Como sugest�o, caso vc nao ache o que procura, (e caso esta id�ia ainda n�o tenha te ocorrido) voc� poderia adotar um m�todo semelhante a este, dependendo do seu objetivo:
boolean funcaoEval(int funcao, char operador, int funcao2) {
if (operador == '>') {
if (funcao > funcao2) return true;
} else if (operador == '<') {
if (funcao < funcao2) return true;
}else if {
( ...e assim por diante para todos os operadores)
}
return false;
}
Entao seria somente o caso de chamar este m�todo quando necess�rio.
Espero ter ajudado.
Carlos
eduardo wrote:
003e01c172de$12d771e0$9a1e0a0a@internetdom" type="cite">Caro BRUNO BORGES
ACHEI SUA RESPOSTA UM TANTO QUANTO ARROGANTE E SEM OBJETIVO DE AJUDAR
NINGUEM
quando a estudar mais. a pergunta � um pouco mais complexa do que sua
resposta for Dummies
vou tentar me expressar melhor pois acho que (nao justificando sua
arrogancia) tentei dar um exemplo simples e a pergunta
pareceu muito facil.
Cara
o que eu quero � um analizador ou parser ( o exemplo dado ) � apenas um
exemplo o mais simples que pude encontrar
o que eu tenho na verdade � o seguinte
eu busco no banco de dados uma String que tem expressoes completas definidas
pelo usuario
que impoem condicoes para determinadas medidas que fazem parte de um
contexto maior
tipo
o usuario define que uma regra para alcancar determinada condicao, � a
segunte:
funcaodeusuario1() > funcaodeusuario2()
estou guardando ist o na base em 3 campos (funcao1,operador,funcao2)
o programa resolve as funcoes e obtem os resultados
depois das funcoes resolvidas preciso comparar os resultados atraves do
operador definido pelo
usuario que pode ser (=,>=,<=,!=,<,>)
quero que o java saiba interpretar o operador pois ele vem do banco como uma
String
Caso ele nao tenha um metodo que me permita fazer isto. Vou ter que ficar
testando um a um
tipo
if (operador=">")
{
faco isso
}
acho meio "for Dummies"
no antigo Clipper existia uma funcao do tipo &variavel
onde o Clipper sabia que era para avaliar o conte�do da variavel (ou seja
resolver a expressao) e me retornar o resultado
Sendo o Java uma linguagem muito mais avancada, creio que deve ter um parser
pronto.
Me expressei melhor?
Vc pode me Ajudar?
Isto esta Explicado no Java for Dummies?
----- O riginal Message -----
From: Bruno Borges <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, November 20, 2001 5:27 PM
Subject: Re: [java-list] DUVIDAS DE INICIANTE (SOCORRO)boa boa pergunta, q tal vc dar uma passadinha no
submarino.com.br e comprar o livro "Java for Dummies",
ou no m�nimo, ESTUDAR UM POKO DE ALGORITMO! na real
cara, estuda um pokinhu mais... totalmente fora de
contexto a sua declaracao
String x = "5>6";
file://totalmente errado segundo o objetivo da sua logica.
mas estaria correto se vc quisesse criar um objeto
String contendo o texto "5>6".
se voce quer comparar algo, use o IF!!
String x;
if(5>6) {
x = "5 eh maior que 6";
} else {
x = "eh obvio q 5 NAO eh maior q 6";
}
[]'s :)
--- eduardo <[EMAIL PROTECTED]> escreveu: >
alguem sabe responderquero que o java resolva a seguinte expressao dentro
de uma string
String x="5>6"
qual metodo e qual classe eu uso para ele avaliar a
expressao
e me retornar se a expressao � verdadeira ou falsa?____________________________________________________________________________
___________________Yahoo! GeoCities
Tenha seu lugar na Web. Construa hoje mesmo sua home page no Yahoo!GeoCities. � f�cil e gr�tis!http://br.geocities.yahoo.com/
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
--------------------------------------------------------------------------- ==================================================== [Carlos H.] - [EMAIL PROTECTED] Kernel de Inform�tica - UNERJ Centro Universit�rio de Jaragu� do Sul "S� os tolos aprendem com os pr�prios erros, os s�bios aprendem com os erros dos outros"
