- All Implemented Interfaces:
StandardOperation.NEWoperation. In Dynalink,
Classobjects are not treated specially and act as ordinary Java objects; you can use e.g.
GET:PROPERTY:superclassas a property getter to invoke
clazz.getSuperclass(). On the other hand, you can not use
Classobjects to access static members of a class, nor to create new instances of the class using
NEW. This is consistent with how
Classobjects behave in Java: in Java, you write e.g.
new BitSet()instead of
new BitSet.class(). Similarly, you write
System.class.out. It is this aspect of using a class name as the constructor and a namespace for static members that
Objects of this class are recognized by the
BeansLinker as being
special, and operations on them will be linked against the represented class'
static members. The
"class" synthetic property is additionally
recognized and returns the Java
Class object, just as in Java
System.class evaluates to the
Class object for the
System class. Conversely,
Class objects exposed through
BeansLinker expose the
"static" synthetic property which
StaticClass object (there is no equivalent to this in
In summary, instances of this class act as namespaces for static members and as constructors for classes, much the same way as specifying a class name in Java language does, except that in Java this is just a syntactic element, while in Dynalink they are expressed as actual objects.
StaticClass objects representing Java array types will act as
constructors taking a single int argument and create an array of the
If the class has several constructors,
StaticClass will try to select the most specific applicable
constructor. You might want to expose a mechanism in your language for
selecting a constructor with an explicit signature through
- See Also: