--- old/src/java.base/share/classes/jdk/experimental/value/ValueType.java 2017-06-26 14:22:48.000000000 -0700 +++ new/src/java.base/share/classes/jdk/experimental/value/ValueType.java 2017-06-26 14:22:48.000000000 -0700 @@ -269,6 +269,12 @@ return result; } + // ()__Value + public MethodHandle findConstructor(Lookup lookup, MethodType type) throws NoSuchMethodException, IllegalAccessException { + return MethodHandles.filterReturnValue(lookup.findConstructor(boxClass(), type), unbox()); + } + + // (__Value, T)__Value public MethodHandle findWither(Lookup lookup, String name, Class type) throws NoSuchFieldException, IllegalAccessException { ValueHandleKey key = ValueHandleKind.WITHER.key(List.of(name, type)); MethodHandle result = handleMap.get(key);