[
Date Prev][Date Next][
Thread Prev][Thread Next][
Date Index][
Thread Index]
[
List Home]
[ide-dev] Java 25 early access - request for feedback
|
Dear All,
It's my pleasure to invite you all to test early access builds with support for
the next version of Java!
Java 25 is scheduled for release on 16 September, 2025.
Prior to that release the preferred way of consuming latest JDT builds from
JAVA_BETA25 branches is this:
* Upgrade an existing installation >= I20250616-1800 with the patch from
https://download.eclipse.org/jdt/updates/4.37-P-builds
After installation you will be able to configure the compiler for compliance
"25 (BETA)" with this disclaimer:
This is an implementation of an early-draft specification developed
under the Java Community Process (JCP) and is made available for testing
and evaluation purposes only. The code is not compatible with any
specification of the JCP.
As always we appreciate reports about any new bugs you might find.
While innovation in recent Java versions mostly happened behind the "preview"
flag, it's Java 25 where three of these features are "graduating", i.e., they
will be part of standard Java since 25.
For these reasons you may want to get your hands on these features sooner rather
than later, but more importantly, it's the Eclipse community which can make the
difference if working with these features will be a smooth experience for
everybody out there. For that reason I'd like to encourage everybody to test
* if the compiler handles everything as expected
* if IDE functions should be amended or new ones created for good UX
These are the three language features becoming standard:
* JEP 513: Flexible Constructor Bodies
In current Java a constructor *must* invoke a super constructor before
any other statements, with a strange loophole of a few things that are
allowed to happen in the argument list of the super invocation.
* this causes hard-to-spot bugs if the super constructor branches into
any code that assumes fields to be correctly initialized, which may
not be the case.
* the new rules specifically support initializing fields before the
super() call, thus avoiding the above problem.
* being optional now, the feature also paves the road to value classes
* JEP 512: Compact Source Files and Instance Main Methods
This feature is targeted at teaching, to allow writing small programs
without the heavy lifting of scaffolding, which uses concept that should
be taught at a later point in the course, i.e., programming without
- packages / imports
- class declaration
- public static void main(String... args)
Notable change from previews: class IO has moved package and needs
to be mentioned explicitly as in: IO.println("Hello World");
* JEP 511: Module Import Declarations
This can be seen as a spin-off of the previous: simplify import lists
by bulk-importing all API of an entire module in just one line.
(Implicitly declared classes implicitly import all of java.base)
While I'm at it, one feature released already with Java 23 - support for
markdown javadoc - still deserves a bit more love in terms of editor
functionality etc.
See, e.g., https://github.com/eclipse-jdt/eclipse.jdt.ui/issues/1800
Happy testing!
Stephan