Hi Mark,

Thanks for pointing out getClass(), I should've thought of that myself...

And thanks for the JSS information, I'll have a look into that.

On 8 July 2015 at 08:27, Mark Evenson <evenson@panix.com> wrote:

> On 07 Jul 2015, at 22:24, John Pallister <john@synchromesh.com> wrote:

[…]

> Some of the tutorials have code like:
>
>   context.addServlet(HelloServlet.class, "/");
>
> Is it possible to get Class objects for Java classes I've made with JNEW-RUNTIME-CLASS (or indeed for any other Java class)?

Since all Java references to non-primitive types descend from java.lang.Object,
one may always get a reference to the class object by [calling the “getClass()”
method][1].

[1]: http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--

> I've been using "raw" JCLASS & JMETHOD etc. calls to experience just how
> painful that really is, but I'm apprehensive about using JSS and paying the
> runtime dynamic dispatch penalty, given that on GAE time is money. Something
> more like a SLIME plug-in that looked up & cached classes, methods & fields at
> editing time (perhaps also parsing Java expressions) and generated "statically
> typed" code would be nice (possibly using code from e.g. JDEE and/or CEDET) -
> has anyone else thought about this?


I wouldn’t necessarily be afraid of the “penalty" for using JSS, or at least, I
might benchmark the difference in performance before shying away from JSS at
the outset.

JSS [already creates a cache of all classes that on the classpath][2].
JSS:JAVA-CLASS-METHOD-NAMES provides a listing of all methods of a class, which
is not currently cached, but could be.  Extending this to java fields would be
useful.  I would welcome patches to JSS which extends these introspection
facilities as the basis for the tooling you wish to build.

[2]: http://abcl.org/trac/browser/trunk/abcl/contrib/jss/invoke.lisp#L299
[3]: http://abcl.org/trac/browser/trunk/abcl/contrib/jss/invoke.lisp#L469