JVM specs for <init> and <new> methods
Dan Smith
daniel.smith at oracle.com
Tue Feb 11 00:28:07 UTC 2020
Here are spec change documents for two new JVM instance creation features that have been proposed to support inline classes.
They're both fairly small, but involve a handful of different design choices. We can further discuss those design choices in this thread.
1) Abstract instance initialization methods
http://cr.openjdk.java.net/~dlsmith/special-methods/special-methods-20200210/specs/abstract-init-jvms.html
Classes with abstract <init> methods require no code execution to initialize instances, and so are candidates to be superclasses of inline classes.
2) Unnamed factory methods
http://cr.openjdk.java.net/~dlsmith/special-methods/special-methods-20200210/specs/factory-methods-jvms.html
The special name '<new>' can be used to declare static factory methods, including in an inline class. (In the previous iteration, we used '<init>' with a non-'void' return. We since discussed avoiding this overloading and associated complexity by choosing a different name.)
More information about the valhalla-spec-experts
mailing list