So I need to subclass first, and then instantiate that new class? Can I to do that with the provided support? I've used jnew-runtime-class

jnew-runtime-class (class-name super-name interfaces constructors methods fields &optional filename)

Not sure how I would provide the specializing class(es) here. The type information may be "erased" but methods can still differ by specialization, right?

For JSS syntax I would probably just accept a list class argument to new.

(new '(InferredObjectPropertyAxiomGenerator OWLObjectSubPropertyAxiom) ...)

Presumably keep a cache of the created subclasses indexed by that list.

It would be nice to be able to find by reflection that InferredObjectPropertyAxiomGenerator is a generic and how many class arguments there are.

Alan


On Tue, Jul 21, 2020 at 7:06 AM Alessio Stalla <alessiostalla@gmail.com> wrote:
Oh, the class is abstract, so you're meant to provide A by subclassing it, not by instantiating. In that case, the value of A *is* retained at runtime and is available for reflection, even if method signatures are still erased to Object.
In ABCL there used to be some runtime-class machinery that was just a sketch... I don't know if it's still there and has enough plumbing to allow you to subclass a generic class providing type specifiers.

On Mon, 20 Jul 2020 at 18:49, Mark Evenson <evenson@panix.com> wrote:


> On Jul 16, 2020, at 04:30, Alan Ruttenberg <alanruttenberg@gmail.com> wrote:
>
> For instance in
>
> http://owlcs.github.io/owlapi/apidocs_4/org/semanticweb/owlapi/util/InferredObjectPropertyAxiomGenerator.html
>
> It says:
> Type Parameters:
> A - the axiom type
> Question is: how do I supply the axiom type when creating an instance.

Can you point me to some code that does the setup?  Somewhere in lsw2?

Alessio is correct that the compiler erases types, but I have sucessfully
created instances that switch such methods over the years working on reasoners,
so I should be able to get this to work for you.  Unfortunately the margin is
too small to contain a proof of this statement without further annotation…

--
"A screaming comes across the sky.  It has happened before but there is nothing
to compare to it now."