$ javap java.lang.StableValue (25.0.4.1+1-LTS) Compiled from "StableValue.java" public interface java.lang.StableValue { public abstract boolean trySet(T); public abstract T orElse(T); public abstract T orElseThrow(); public abstract boolean isSet(); public abstract T orElseSet(java.util.function.Supplier); public abstract void setOrThrow(T); public abstract boolean equals(java.lang.Object); public abstract int hashCode(); public static java.lang.StableValue of(); public static java.lang.StableValue of(T); public static java.util.function.Supplier supplier(java.util.function.Supplier); public static java.util.function.IntFunction intFunction(int, java.util.function.IntFunction); public static java.util.function.Function function(java.util.Set, java.util.function.Function); public static java.util.List list(int, java.util.function.IntFunction); public static java.util.Map map(java.util.Set, java.util.function.Function); } $ javap java.lang.LazyConstant (26.0.2.1+1) Compiled from "LazyConstant.java" public interface java.lang.LazyConstant extends java.util.function.Supplier { public abstract T orElse(T); public abstract T get(); public abstract boolean isInitialized(); public abstract boolean equals(java.lang.Object); public abstract int hashCode(); public abstract java.lang.String toString(); public static java.lang.LazyConstant of(java.util.function.Supplier); } $ javap java.lang.LazyConstant (27+35) Compiled from "LazyConstant.java" public interface java.lang.LazyConstant extends java.util.function.Supplier { public abstract T get(); public abstract boolean equals(java.lang.Object); public abstract int hashCode(); public abstract java.lang.String toString(); public static java.lang.LazyConstant of(java.util.function.Supplier); } $ javap java.util.List | grep ofLazy (26.0.2.1+1) public static java.util.List ofLazy(int, java.util.function.IntFunction); $ javap java.util.Map | grep ofLazy (26.0.2.1+1) public static java.util.Map ofLazy(java.util.Set, java.util.function.Function); $ javap java.util.Set | grep ofLazy (26.0.2.1+1) $ javap java.util.List | grep ofLazy (27+35) public static java.util.List ofLazy(int, java.util.function.IntFunction); $ javap java.util.Map | grep ofLazy (27+35) public static java.util.Map ofLazy(java.util.Set, java.util.function.Function); $ javap java.util.Set | grep ofLazy (27+35) public static java.util.Set ofLazy(java.util.Set, java.util.function.Predicate); $ javac --enable-preview --release 25 src/StableValue25.java && java --enable-preview StableValue25 (25.0.4.1+1-LTS) [load] configuration CONFIG.get(): loaded CONFIG.get(): loaded [compute] orElseSet lazy(): computed lazy(): computed [element] 2 LIST.get(2): v2 $ javac --enable-preview --release 26 broken/StillStable.java (26.0.2.1+1) broken/StillStable.java:3: error: cannot find symbol static final StableValue CONFIG = StableValue.of(); ^ symbol: class StableValue location: class StillStable broken/StillStable.java:3: error: cannot find symbol static final StableValue CONFIG = StableValue.of(); ^ symbol: variable StableValue location: class StillStable 2 errors exit=1 $ javac --enable-preview --release 27 broken/StillStable.java (27+35) broken/StillStable.java:3: error: cannot find symbol static final StableValue CONFIG = StableValue.of(); ^ symbol: class StableValue location: class StillStable broken/StillStable.java:3: error: cannot find symbol static final StableValue CONFIG = StableValue.of(); ^ symbol: variable StableValue location: class StillStable 2 errors exit=1 $ javac --enable-preview --release 26 broken/RemovedApi.java (26.0.2.1+1) exit=0 $ javac --enable-preview --release 27 broken/RemovedApi.java (27+35) broken/RemovedApi.java:4: error: cannot find symbol System.out.println(c.isInitialized()); // exists on JDK 26, removed in 27 ^ symbol: method isInitialized() location: variable c of type LazyConstant broken/RemovedApi.java:5: error: cannot find symbol System.out.println(c.orElse("fallback")); // exists on JDK 26, removed in 27 ^ symbol: method orElse(String) location: variable c of type LazyConstant 2 errors exit=1 $ javac --enable-preview --release 27 broken/ReassignInSupplier.java (27+35) broken/ReassignInSupplier.java:5: error: cannot find symbol c.set("y"); ^ symbol: method set(String) location: variable c of type LazyConstant 1 error exit=1