jpype v0.6.3 Release Notes

Release Date: 2018-04-03 // almost 4 years ago

    Java reference counting has been converted to use JNI
    PushLocalFrame/PopLocalFrame. Several resource leaks
    ๐Ÿšš were removed.

    java.lang.Class<>.forName() will now return the java.lang.Class.
    โ†ช Work arounds for requiring the class loader are no longer needed.
    ๐Ÿ‘ Customizers now support customization of static members.

    ๐Ÿ‘Œ Support of java.lang.Class<>

    java.lang.Object().getClass() on Java objects returns a java.lang.Class
    rather than the Python class

    java.lang.Object(). class on Java objects returns the python class
    as do all python objects

    java.lang.Object.class_ maps to the java statement 'java.lang.Object.class' and
    returns the java.lang.Class<java.lang.object>

    ๐Ÿ‘ java.lang.Class supports reflection methods

    private fields and methods can be accessed via reflection

    annotations are avaiable via reflection

    Java objects and arrays will not accept setattr unless the
    attribute corresponds to a java method or field whith
    ๐Ÿ‘ป the exception of private attributes that begin with
    underscore.

    โž• Added support for automatic conversion of boxed types.

    Boxed types automatically convert to python primitives.

    Boxed types automatically convert to java primitives when resolving functions.

    Functions taking boxed or primitives still resolve based on closest match.

    Python integer primitives will implicitly match java float and double as per
    Java specification.

    โž• Added support for try with resources for java.lang.Closeable.
    ๐Ÿ‘‰ Use python "with MyJavaResource() as resource:" statement
    to automatically close a resource at the end of a block.