|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Como hacer un eval?
Quisiera saber como se puede iterar en java para que evalue un script, es decir, quiero simplificar las lineas para generar esto:
rg1_1.setVisibility(0); rg1_2.setVisibility(0); rg1_3.setVisibility(0); rg1_4.setVisibility(0); rg1_5.setVisibility(0); donde pueda hacer un loop for para sustituir n por el numero de iteración --> rg1_n Y que utilice algo así como la función eval en javascript. Se que se puede hacer en java con javax.script pero en android no existe. Les agradezco de antemano. |
|
|
|
#2
|
||||
|
||||
|
Ante todo, no se si esto se puede hacer en este Java "recortado". En teoría es una característica de cualquier lenguaje OOP, y no de sus librerias. Yo intentaría agrupar esos objetos en una colección que luego se puede recorrer. La "macrosustitución" (como se conocía antes), es una característica que muy pocos lenguajes poseen.
A ver si alguien con más experiencia lo puede aclarar. Yo, al menos, es la técnica que uso para cosas similares en casi todos los lenguajes que programo. En especial para objetos visuales. |
|
#3
|
||||
|
||||
|
Lo podrías hacer en javascript, usando un webview, porque se puede interactuar entre le javascript y el java. Complicado e incluso absurdo, pero se puede.
Tambien se puede usar "java reflection", coloca estas dos palabras en google. No es eval porque no evalua expresiones, pero para ese ejemplo que has puesto sirve. Acceder en tiempo de ejecucion a los nombres de sus objetos, datos y métodos no es una caracteristica de la OOP, es una caracteristica de los lenguajes interpretados, en ningun lenguaje compilado que se precie se puede hacer eso, por muy OOP que sea. En este caso java conserva los nombres despues de compilar, nunca me ha gustado eso, pues es uno de los motivos por los que luego es tan facil aplicar la "ingenieria inversa". De todas formas tu problema -si me lo permites- es de un pésimo diseño de la aplicación, eso de tener una lista de datos que no forma parte realmente de una lista ni array y que ni siquiera se ha creado dinámicamente por lo que parece, es un error.
__________________
Saludos
-Pedro- http://www.maicas.net/ (desarrollo de software) http://droid.maicas.net/ (solo android) |
|
#4
|
||||
|
||||
|
Ni Java ni .NET son realmente compilados. Se basan en una maquina virtual, que es sencillamente una evolución del viejo concepto de intérprete. En mi opinión, lo mejor sería, si es posible, cambiar un poco el diseño de esa aplicación. Yo simplemente crearía los objetos dinámicamente y los iría colocando en una colección. De esa forma se pueden después recorrer fácilmente y modificar sus propiedades de forma efectiva. |
|
#5
|
||||
|
||||
|
OK. Muchas gracias por sus comentarios. Intentare por java reflection.
|
![]() |
Estás aquí
|
||||||
|
||||||