You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by sebb <se...@gmail.com> on 2008/05/08 17:26:55 UTC
[JEXL] Access to static methods?
JEXL can access instance methods via the objects that are passed to
the interpreter.
Is it possible to access static methods in Jexl?
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org
Re: [JEXL] Access to static methods?
Posted by sebb <se...@gmail.com>.
On 12/05/2008, Trevor Harrison <tr...@gmail.com> wrote:
> On Mon, May 12, 2008 at 7:35 AM, sebb <se...@gmail.com> wrote:
> > I see, thanks, very useful.
> >
> > Presumably Jexl has to be given class objects for any static methods
> > it needs to call?
> > Or are there any objects which are built-in to Jexl?
>
>
> Doesn't matter, you can get access to any objects you need on the fly
> with something like:
>
> i = 0;
> intClazz = i.class;
> clazz = intClazz.forName("java.io.File");
> m = clazz.getMethod("listRoots", null);
> roots = m.invoke(null, null);
> files = roots[0].listFiles();
> foreach( file in files )
> {
> // do something with the file
> }
>
> Just replace the java.io.File string with the class you are interested
> in, and use the reflection api.
>
Thanks, that's clever ...
>
> -Trevor
>
;-)
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org
Re: [JEXL] Access to static methods?
Posted by Trevor Harrison <tr...@gmail.com>.
On Mon, May 12, 2008 at 7:35 AM, sebb <se...@gmail.com> wrote:
> I see, thanks, very useful.
>
> Presumably Jexl has to be given class objects for any static methods
> it needs to call?
> Or are there any objects which are built-in to Jexl?
Doesn't matter, you can get access to any objects you need on the fly
with something like:
i = 0;
intClazz = i.class;
clazz = intClazz.forName("java.io.File");
m = clazz.getMethod("listRoots", null);
roots = m.invoke(null, null);
files = roots[0].listFiles();
foreach( file in files )
{
// do something with the file
}
Just replace the java.io.File string with the class you are interested
in, and use the reflection api.
-Trevor
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org
Re: [JEXL] Access to static methods?
Posted by sebb <se...@gmail.com>.
I see, thanks, very useful.
Presumably Jexl has to be given class objects for any static methods
it needs to call?
Or are there any objects which are built-in to Jexl?
If not, it looks like one could perhaps extend FlatResolver to handle
something like:
systemClass=java.lang.System.class;
and then use it as follows:
systemClass.currentTimeMillis();
Or is this destined to fail?
Or am I way off
On 12/05/2008, Dion Gillard <di...@trongus.com> wrote:
> Yes.
>
> See
> http://svn.apache.org/repos/asf/commons/proper/jexl/trunk/src/test/org/apache/commons/jexl/JexlTest.java
> Look for
>
> testStaticMethodInvocation and testStaticMethodInvocationOnClasses
>
>
>
> On Fri, May 9, 2008 at 1:26 AM, sebb <se...@gmail.com> wrote:
>
> > JEXL can access instance methods via the objects that are passed to
> > the interpreter.
> >
> > Is it possible to access static methods in Jexl?
> >
>
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> > For additional commands, e-mail: user-help@commons.apache.org
> >
> >
>
>
>
> --
> dIon Gillard
> "Any sufficiently advanced technology is indistinguishable from magic" -
> Arthur C. Clarke 1917 - 2008
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org
Re: [JEXL] Access to static methods?
Posted by Dion Gillard <di...@trongus.com>.
Yes.
See
http://svn.apache.org/repos/asf/commons/proper/jexl/trunk/src/test/org/apache/commons/jexl/JexlTest.java
Look for
testStaticMethodInvocation and testStaticMethodInvocationOnClasses
On Fri, May 9, 2008 at 1:26 AM, sebb <se...@gmail.com> wrote:
> JEXL can access instance methods via the objects that are passed to
> the interpreter.
>
> Is it possible to access static methods in Jexl?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>
--
dIon Gillard
"Any sufficiently advanced technology is indistinguishable from magic" -
Arthur C. Clarke 1917 - 2008