summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Narayan Kamath <narayan@google.com> 2017-01-18 10:04:10 +0000
committer android-build-merger <android-build-merger@google.com> 2017-01-18 10:04:10 +0000
commitfc9c93c2ddc5a1324122f44b09880fae3cbb934d (patch)
tree986fded1e30d12ae5944cfbef86c4725339763c8
parent7ae809eea6e8e8cc5be42d3269a4902d1c950425 (diff)
parentaa903365107a3886982f4165d2356934f7fdb7e7 (diff)
Merge "API: Unhide MethodHandles API (java.lang.invoke)." am: 71b1d50531 am: ec667adb56
am: aa90336510 Change-Id: I1e0f760ea4ddc5cac238c17a8cf2e53b40706af9
-rw-r--r--api/current.txt127
-rw-r--r--api/system-current.txt127
-rw-r--r--api/test-current.txt127
3 files changed, 381 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt
index a766dc82d993..c7acea5213e2 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -52191,6 +52191,133 @@ package java.lang.annotation {
}
+package java.lang.invoke {
+
+ public class LambdaConversionException extends java.lang.Exception {
+ ctor public LambdaConversionException();
+ ctor public LambdaConversionException(java.lang.String);
+ ctor public LambdaConversionException(java.lang.String, java.lang.Throwable);
+ ctor public LambdaConversionException(java.lang.Throwable);
+ ctor public LambdaConversionException(java.lang.String, java.lang.Throwable, boolean, boolean);
+ }
+
+ public abstract class MethodHandle {
+ method public java.lang.invoke.MethodHandle asFixedArity();
+ method public java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodType);
+ method public java.lang.invoke.MethodHandle asVarargsCollector(java.lang.Class<?>);
+ method public java.lang.invoke.MethodHandle bindTo(java.lang.Object);
+ method public final java.lang.Object invoke(java.lang.Object...) throws java.lang.Throwable;
+ method public final java.lang.Object invokeExact(java.lang.Object...) throws java.lang.Throwable;
+ method public java.lang.Object invokeWithArguments(java.util.List<?>) throws java.lang.Throwable;
+ method public boolean isVarargsCollector();
+ method public java.lang.invoke.MethodType type();
+ }
+
+ public abstract interface MethodHandleInfo {
+ method public abstract java.lang.Class<?> getDeclaringClass();
+ method public abstract java.lang.invoke.MethodType getMethodType();
+ method public abstract int getModifiers();
+ method public abstract java.lang.String getName();
+ method public abstract int getReferenceKind();
+ method public default boolean isVarArgs();
+ method public static boolean refKindIsField(int);
+ method public static boolean refKindIsValid(int);
+ method public static java.lang.String refKindName(int);
+ method public static java.lang.String referenceKindToString(int);
+ method public abstract <T extends java.lang.reflect.Member> T reflectAs(java.lang.Class<T>, java.lang.invoke.MethodHandles.Lookup);
+ method public static java.lang.String toString(int, java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType);
+ field public static final int REF_getField = 1; // 0x1
+ field public static final int REF_getStatic = 2; // 0x2
+ field public static final int REF_invokeInterface = 9; // 0x9
+ field public static final int REF_invokeSpecial = 7; // 0x7
+ field public static final int REF_invokeStatic = 6; // 0x6
+ field public static final int REF_invokeVirtual = 5; // 0x5
+ field public static final int REF_newInvokeSpecial = 8; // 0x8
+ field public static final int REF_putField = 3; // 0x3
+ field public static final int REF_putStatic = 4; // 0x4
+ }
+
+ public class MethodHandles {
+ method public static java.lang.invoke.MethodHandle arrayElementGetter(java.lang.Class<?>) throws java.lang.IllegalArgumentException;
+ method public static java.lang.invoke.MethodHandle arrayElementSetter(java.lang.Class<?>) throws java.lang.IllegalArgumentException;
+ method public static java.lang.invoke.MethodHandle catchException(java.lang.invoke.MethodHandle, java.lang.Class<? extends java.lang.Throwable>, java.lang.invoke.MethodHandle);
+ method public static java.lang.invoke.MethodHandle constant(java.lang.Class<?>, java.lang.Object);
+ method public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>);
+ method public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.lang.Class<?>...);
+ method public static java.lang.invoke.MethodHandle exactInvoker(java.lang.invoke.MethodType);
+ method public static java.lang.invoke.MethodHandle filterReturnValue(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
+ method public static java.lang.invoke.MethodHandle guardWithTest(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
+ method public static java.lang.invoke.MethodHandle identity(java.lang.Class<?>);
+ method public static java.lang.invoke.MethodHandle invoker(java.lang.invoke.MethodType);
+ method public static java.lang.invoke.MethodHandles.Lookup lookup();
+ method public static java.lang.invoke.MethodHandle permuteArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, int...);
+ method public static java.lang.invoke.MethodHandles.Lookup publicLookup();
+ method public static java.lang.invoke.MethodHandle throwException(java.lang.Class<?>, java.lang.Class<? extends java.lang.Throwable>);
+ }
+
+ public static final class MethodHandles.Lookup {
+ method public java.lang.invoke.MethodHandle bind(java.lang.Object, java.lang.String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandle findConstructor(java.lang.Class<?>, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandle findGetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+ method public java.lang.invoke.MethodHandle findSetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+ method public java.lang.invoke.MethodHandle findSpecial(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandle findStatic(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandle findStaticGetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+ method public java.lang.invoke.MethodHandle findStaticSetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+ method public java.lang.invoke.MethodHandle findVirtual(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandles.Lookup in(java.lang.Class<?>);
+ method public java.lang.Class<?> lookupClass();
+ method public int lookupModes();
+ method public void throwMakeAccessException(java.lang.String, java.lang.Object) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflect(java.lang.reflect.Method) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflectConstructor(java.lang.reflect.Constructor<?>) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflectGetter(java.lang.reflect.Field) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflectSetter(java.lang.reflect.Field) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflectSpecial(java.lang.reflect.Method, java.lang.Class<?>) throws java.lang.IllegalAccessException;
+ field public static final int PACKAGE = 8; // 0x8
+ field public static final int PRIVATE = 2; // 0x2
+ field public static final int PROTECTED = 4; // 0x4
+ field public static final int PUBLIC = 1; // 0x1
+ }
+
+ public final class MethodType implements java.io.Serializable {
+ method public java.lang.invoke.MethodType appendParameterTypes(java.lang.Class<?>...);
+ method public java.lang.invoke.MethodType appendParameterTypes(java.util.List<java.lang.Class<?>>);
+ method public java.lang.invoke.MethodType changeParameterType(int, java.lang.Class<?>);
+ method public java.lang.invoke.MethodType changeReturnType(java.lang.Class<?>);
+ method public java.lang.invoke.MethodType dropParameterTypes(int, int);
+ method public java.lang.invoke.MethodType erase();
+ method public static java.lang.invoke.MethodType fromMethodDescriptorString(java.lang.String, java.lang.ClassLoader) throws java.lang.IllegalArgumentException, java.lang.TypeNotPresentException;
+ method public java.lang.invoke.MethodType generic();
+ method public static java.lang.invoke.MethodType genericMethodType(int, boolean);
+ method public static java.lang.invoke.MethodType genericMethodType(int);
+ method public boolean hasPrimitives();
+ method public boolean hasWrappers();
+ method public java.lang.invoke.MethodType insertParameterTypes(int, java.lang.Class<?>...);
+ method public java.lang.invoke.MethodType insertParameterTypes(int, java.util.List<java.lang.Class<?>>);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.Class<?>[]);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.util.List<java.lang.Class<?>>);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.Class<?>, java.lang.Class<?>...);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.Class<?>);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.invoke.MethodType);
+ method public java.lang.Class<?>[] parameterArray();
+ method public int parameterCount();
+ method public java.util.List<java.lang.Class<?>> parameterList();
+ method public java.lang.Class<?> parameterType(int);
+ method public java.lang.Class<?> returnType();
+ method public java.lang.String toMethodDescriptorString();
+ method public java.lang.invoke.MethodType unwrap();
+ method public java.lang.invoke.MethodType wrap();
+ }
+
+ public class WrongMethodTypeException extends java.lang.RuntimeException {
+ ctor public WrongMethodTypeException();
+ ctor public WrongMethodTypeException(java.lang.String);
+ }
+
+}
+
package java.lang.ref {
public class PhantomReference<T> extends java.lang.ref.Reference {
diff --git a/api/system-current.txt b/api/system-current.txt
index 29d1248e15df..c5053bf43c8c 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -55791,6 +55791,133 @@ package java.lang.annotation {
}
+package java.lang.invoke {
+
+ public class LambdaConversionException extends java.lang.Exception {
+ ctor public LambdaConversionException();
+ ctor public LambdaConversionException(java.lang.String);
+ ctor public LambdaConversionException(java.lang.String, java.lang.Throwable);
+ ctor public LambdaConversionException(java.lang.Throwable);
+ ctor public LambdaConversionException(java.lang.String, java.lang.Throwable, boolean, boolean);
+ }
+
+ public abstract class MethodHandle {
+ method public java.lang.invoke.MethodHandle asFixedArity();
+ method public java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodType);
+ method public java.lang.invoke.MethodHandle asVarargsCollector(java.lang.Class<?>);
+ method public java.lang.invoke.MethodHandle bindTo(java.lang.Object);
+ method public final java.lang.Object invoke(java.lang.Object...) throws java.lang.Throwable;
+ method public final java.lang.Object invokeExact(java.lang.Object...) throws java.lang.Throwable;
+ method public java.lang.Object invokeWithArguments(java.util.List<?>) throws java.lang.Throwable;
+ method public boolean isVarargsCollector();
+ method public java.lang.invoke.MethodType type();
+ }
+
+ public abstract interface MethodHandleInfo {
+ method public abstract java.lang.Class<?> getDeclaringClass();
+ method public abstract java.lang.invoke.MethodType getMethodType();
+ method public abstract int getModifiers();
+ method public abstract java.lang.String getName();
+ method public abstract int getReferenceKind();
+ method public default boolean isVarArgs();
+ method public static boolean refKindIsField(int);
+ method public static boolean refKindIsValid(int);
+ method public static java.lang.String refKindName(int);
+ method public static java.lang.String referenceKindToString(int);
+ method public abstract <T extends java.lang.reflect.Member> T reflectAs(java.lang.Class<T>, java.lang.invoke.MethodHandles.Lookup);
+ method public static java.lang.String toString(int, java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType);
+ field public static final int REF_getField = 1; // 0x1
+ field public static final int REF_getStatic = 2; // 0x2
+ field public static final int REF_invokeInterface = 9; // 0x9
+ field public static final int REF_invokeSpecial = 7; // 0x7
+ field public static final int REF_invokeStatic = 6; // 0x6
+ field public static final int REF_invokeVirtual = 5; // 0x5
+ field public static final int REF_newInvokeSpecial = 8; // 0x8
+ field public static final int REF_putField = 3; // 0x3
+ field public static final int REF_putStatic = 4; // 0x4
+ }
+
+ public class MethodHandles {
+ method public static java.lang.invoke.MethodHandle arrayElementGetter(java.lang.Class<?>) throws java.lang.IllegalArgumentException;
+ method public static java.lang.invoke.MethodHandle arrayElementSetter(java.lang.Class<?>) throws java.lang.IllegalArgumentException;
+ method public static java.lang.invoke.MethodHandle catchException(java.lang.invoke.MethodHandle, java.lang.Class<? extends java.lang.Throwable>, java.lang.invoke.MethodHandle);
+ method public static java.lang.invoke.MethodHandle constant(java.lang.Class<?>, java.lang.Object);
+ method public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>);
+ method public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.lang.Class<?>...);
+ method public static java.lang.invoke.MethodHandle exactInvoker(java.lang.invoke.MethodType);
+ method public static java.lang.invoke.MethodHandle filterReturnValue(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
+ method public static java.lang.invoke.MethodHandle guardWithTest(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
+ method public static java.lang.invoke.MethodHandle identity(java.lang.Class<?>);
+ method public static java.lang.invoke.MethodHandle invoker(java.lang.invoke.MethodType);
+ method public static java.lang.invoke.MethodHandles.Lookup lookup();
+ method public static java.lang.invoke.MethodHandle permuteArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, int...);
+ method public static java.lang.invoke.MethodHandles.Lookup publicLookup();
+ method public static java.lang.invoke.MethodHandle throwException(java.lang.Class<?>, java.lang.Class<? extends java.lang.Throwable>);
+ }
+
+ public static final class MethodHandles.Lookup {
+ method public java.lang.invoke.MethodHandle bind(java.lang.Object, java.lang.String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandle findConstructor(java.lang.Class<?>, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandle findGetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+ method public java.lang.invoke.MethodHandle findSetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+ method public java.lang.invoke.MethodHandle findSpecial(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandle findStatic(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandle findStaticGetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+ method public java.lang.invoke.MethodHandle findStaticSetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+ method public java.lang.invoke.MethodHandle findVirtual(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandles.Lookup in(java.lang.Class<?>);
+ method public java.lang.Class<?> lookupClass();
+ method public int lookupModes();
+ method public void throwMakeAccessException(java.lang.String, java.lang.Object) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflect(java.lang.reflect.Method) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflectConstructor(java.lang.reflect.Constructor<?>) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflectGetter(java.lang.reflect.Field) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflectSetter(java.lang.reflect.Field) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflectSpecial(java.lang.reflect.Method, java.lang.Class<?>) throws java.lang.IllegalAccessException;
+ field public static final int PACKAGE = 8; // 0x8
+ field public static final int PRIVATE = 2; // 0x2
+ field public static final int PROTECTED = 4; // 0x4
+ field public static final int PUBLIC = 1; // 0x1
+ }
+
+ public final class MethodType implements java.io.Serializable {
+ method public java.lang.invoke.MethodType appendParameterTypes(java.lang.Class<?>...);
+ method public java.lang.invoke.MethodType appendParameterTypes(java.util.List<java.lang.Class<?>>);
+ method public java.lang.invoke.MethodType changeParameterType(int, java.lang.Class<?>);
+ method public java.lang.invoke.MethodType changeReturnType(java.lang.Class<?>);
+ method public java.lang.invoke.MethodType dropParameterTypes(int, int);
+ method public java.lang.invoke.MethodType erase();
+ method public static java.lang.invoke.MethodType fromMethodDescriptorString(java.lang.String, java.lang.ClassLoader) throws java.lang.IllegalArgumentException, java.lang.TypeNotPresentException;
+ method public java.lang.invoke.MethodType generic();
+ method public static java.lang.invoke.MethodType genericMethodType(int, boolean);
+ method public static java.lang.invoke.MethodType genericMethodType(int);
+ method public boolean hasPrimitives();
+ method public boolean hasWrappers();
+ method public java.lang.invoke.MethodType insertParameterTypes(int, java.lang.Class<?>...);
+ method public java.lang.invoke.MethodType insertParameterTypes(int, java.util.List<java.lang.Class<?>>);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.Class<?>[]);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.util.List<java.lang.Class<?>>);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.Class<?>, java.lang.Class<?>...);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.Class<?>);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.invoke.MethodType);
+ method public java.lang.Class<?>[] parameterArray();
+ method public int parameterCount();
+ method public java.util.List<java.lang.Class<?>> parameterList();
+ method public java.lang.Class<?> parameterType(int);
+ method public java.lang.Class<?> returnType();
+ method public java.lang.String toMethodDescriptorString();
+ method public java.lang.invoke.MethodType unwrap();
+ method public java.lang.invoke.MethodType wrap();
+ }
+
+ public class WrongMethodTypeException extends java.lang.RuntimeException {
+ ctor public WrongMethodTypeException();
+ ctor public WrongMethodTypeException(java.lang.String);
+ }
+
+}
+
package java.lang.ref {
public class PhantomReference<T> extends java.lang.ref.Reference {
diff --git a/api/test-current.txt b/api/test-current.txt
index 31cb5573abc3..bb08b07da41c 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -52282,6 +52282,133 @@ package java.lang.annotation {
}
+package java.lang.invoke {
+
+ public class LambdaConversionException extends java.lang.Exception {
+ ctor public LambdaConversionException();
+ ctor public LambdaConversionException(java.lang.String);
+ ctor public LambdaConversionException(java.lang.String, java.lang.Throwable);
+ ctor public LambdaConversionException(java.lang.Throwable);
+ ctor public LambdaConversionException(java.lang.String, java.lang.Throwable, boolean, boolean);
+ }
+
+ public abstract class MethodHandle {
+ method public java.lang.invoke.MethodHandle asFixedArity();
+ method public java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodType);
+ method public java.lang.invoke.MethodHandle asVarargsCollector(java.lang.Class<?>);
+ method public java.lang.invoke.MethodHandle bindTo(java.lang.Object);
+ method public final java.lang.Object invoke(java.lang.Object...) throws java.lang.Throwable;
+ method public final java.lang.Object invokeExact(java.lang.Object...) throws java.lang.Throwable;
+ method public java.lang.Object invokeWithArguments(java.util.List<?>) throws java.lang.Throwable;
+ method public boolean isVarargsCollector();
+ method public java.lang.invoke.MethodType type();
+ }
+
+ public abstract interface MethodHandleInfo {
+ method public abstract java.lang.Class<?> getDeclaringClass();
+ method public abstract java.lang.invoke.MethodType getMethodType();
+ method public abstract int getModifiers();
+ method public abstract java.lang.String getName();
+ method public abstract int getReferenceKind();
+ method public default boolean isVarArgs();
+ method public static boolean refKindIsField(int);
+ method public static boolean refKindIsValid(int);
+ method public static java.lang.String refKindName(int);
+ method public static java.lang.String referenceKindToString(int);
+ method public abstract <T extends java.lang.reflect.Member> T reflectAs(java.lang.Class<T>, java.lang.invoke.MethodHandles.Lookup);
+ method public static java.lang.String toString(int, java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType);
+ field public static final int REF_getField = 1; // 0x1
+ field public static final int REF_getStatic = 2; // 0x2
+ field public static final int REF_invokeInterface = 9; // 0x9
+ field public static final int REF_invokeSpecial = 7; // 0x7
+ field public static final int REF_invokeStatic = 6; // 0x6
+ field public static final int REF_invokeVirtual = 5; // 0x5
+ field public static final int REF_newInvokeSpecial = 8; // 0x8
+ field public static final int REF_putField = 3; // 0x3
+ field public static final int REF_putStatic = 4; // 0x4
+ }
+
+ public class MethodHandles {
+ method public static java.lang.invoke.MethodHandle arrayElementGetter(java.lang.Class<?>) throws java.lang.IllegalArgumentException;
+ method public static java.lang.invoke.MethodHandle arrayElementSetter(java.lang.Class<?>) throws java.lang.IllegalArgumentException;
+ method public static java.lang.invoke.MethodHandle catchException(java.lang.invoke.MethodHandle, java.lang.Class<? extends java.lang.Throwable>, java.lang.invoke.MethodHandle);
+ method public static java.lang.invoke.MethodHandle constant(java.lang.Class<?>, java.lang.Object);
+ method public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>);
+ method public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.lang.Class<?>...);
+ method public static java.lang.invoke.MethodHandle exactInvoker(java.lang.invoke.MethodType);
+ method public static java.lang.invoke.MethodHandle filterReturnValue(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
+ method public static java.lang.invoke.MethodHandle guardWithTest(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
+ method public static java.lang.invoke.MethodHandle identity(java.lang.Class<?>);
+ method public static java.lang.invoke.MethodHandle invoker(java.lang.invoke.MethodType);
+ method public static java.lang.invoke.MethodHandles.Lookup lookup();
+ method public static java.lang.invoke.MethodHandle permuteArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, int...);
+ method public static java.lang.invoke.MethodHandles.Lookup publicLookup();
+ method public static java.lang.invoke.MethodHandle throwException(java.lang.Class<?>, java.lang.Class<? extends java.lang.Throwable>);
+ }
+
+ public static final class MethodHandles.Lookup {
+ method public java.lang.invoke.MethodHandle bind(java.lang.Object, java.lang.String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandle findConstructor(java.lang.Class<?>, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandle findGetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+ method public java.lang.invoke.MethodHandle findSetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+ method public java.lang.invoke.MethodHandle findSpecial(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandle findStatic(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandle findStaticGetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+ method public java.lang.invoke.MethodHandle findStaticSetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>) throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException;
+ method public java.lang.invoke.MethodHandle findVirtual(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType) throws java.lang.IllegalAccessException, java.lang.NoSuchMethodException;
+ method public java.lang.invoke.MethodHandles.Lookup in(java.lang.Class<?>);
+ method public java.lang.Class<?> lookupClass();
+ method public int lookupModes();
+ method public void throwMakeAccessException(java.lang.String, java.lang.Object) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflect(java.lang.reflect.Method) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflectConstructor(java.lang.reflect.Constructor<?>) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflectGetter(java.lang.reflect.Field) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflectSetter(java.lang.reflect.Field) throws java.lang.IllegalAccessException;
+ method public java.lang.invoke.MethodHandle unreflectSpecial(java.lang.reflect.Method, java.lang.Class<?>) throws java.lang.IllegalAccessException;
+ field public static final int PACKAGE = 8; // 0x8
+ field public static final int PRIVATE = 2; // 0x2
+ field public static final int PROTECTED = 4; // 0x4
+ field public static final int PUBLIC = 1; // 0x1
+ }
+
+ public final class MethodType implements java.io.Serializable {
+ method public java.lang.invoke.MethodType appendParameterTypes(java.lang.Class<?>...);
+ method public java.lang.invoke.MethodType appendParameterTypes(java.util.List<java.lang.Class<?>>);
+ method public java.lang.invoke.MethodType changeParameterType(int, java.lang.Class<?>);
+ method public java.lang.invoke.MethodType changeReturnType(java.lang.Class<?>);
+ method public java.lang.invoke.MethodType dropParameterTypes(int, int);
+ method public java.lang.invoke.MethodType erase();
+ method public static java.lang.invoke.MethodType fromMethodDescriptorString(java.lang.String, java.lang.ClassLoader) throws java.lang.IllegalArgumentException, java.lang.TypeNotPresentException;
+ method public java.lang.invoke.MethodType generic();
+ method public static java.lang.invoke.MethodType genericMethodType(int, boolean);
+ method public static java.lang.invoke.MethodType genericMethodType(int);
+ method public boolean hasPrimitives();
+ method public boolean hasWrappers();
+ method public java.lang.invoke.MethodType insertParameterTypes(int, java.lang.Class<?>...);
+ method public java.lang.invoke.MethodType insertParameterTypes(int, java.util.List<java.lang.Class<?>>);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.Class<?>[]);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.util.List<java.lang.Class<?>>);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.Class<?>, java.lang.Class<?>...);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.Class<?>);
+ method public static java.lang.invoke.MethodType methodType(java.lang.Class<?>, java.lang.invoke.MethodType);
+ method public java.lang.Class<?>[] parameterArray();
+ method public int parameterCount();
+ method public java.util.List<java.lang.Class<?>> parameterList();
+ method public java.lang.Class<?> parameterType(int);
+ method public java.lang.Class<?> returnType();
+ method public java.lang.String toMethodDescriptorString();
+ method public java.lang.invoke.MethodType unwrap();
+ method public java.lang.invoke.MethodType wrap();
+ }
+
+ public class WrongMethodTypeException extends java.lang.RuntimeException {
+ ctor public WrongMethodTypeException();
+ ctor public WrongMethodTypeException(java.lang.String);
+ }
+
+}
+
package java.lang.ref {
public class PhantomReference<T> extends java.lang.ref.Reference {