When calling Java methods from Rust, it seems that they need to be public - or there may be confusion if they are not.
With a simple test, having a package-protected default constructor, and calling jvm.invoke(..) the returned instance would be invalid. It only seemed to work when making the constructor public.
This may be intentional, or there may be other nuances, but as there is no documentation around this, it becomes confusing to debug. It may also be a bug.
At the very least, it would be useful if there was some documentation around the requirements and/or how accessors/privacy are handled.