diff options
Diffstat (limited to 'src/jdk/internal/dynalink/beans/CallerSensitiveDynamicMethod.java')
-rw-r--r-- | src/jdk/internal/dynalink/beans/CallerSensitiveDynamicMethod.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/jdk/internal/dynalink/beans/CallerSensitiveDynamicMethod.java b/src/jdk/internal/dynalink/beans/CallerSensitiveDynamicMethod.java index 1e274d51..2896732e 100644 --- a/src/jdk/internal/dynalink/beans/CallerSensitiveDynamicMethod.java +++ b/src/jdk/internal/dynalink/beans/CallerSensitiveDynamicMethod.java @@ -107,13 +107,13 @@ class CallerSensitiveDynamicMethod extends SingleDynamicMethod { private final AccessibleObject target; private final MethodType type; - public CallerSensitiveDynamicMethod(AccessibleObject target) { + public CallerSensitiveDynamicMethod(final AccessibleObject target) { super(getName(target)); this.target = target; this.type = getMethodType(target); } - private static String getName(AccessibleObject target) { + private static String getName(final AccessibleObject target) { final Member m = (Member)target; return getMethodNameWithSignature(getMethodType(target), getClassAndMethodName(m.getDeclaringClass(), m.getName())); @@ -124,7 +124,7 @@ class CallerSensitiveDynamicMethod extends SingleDynamicMethod { return type; } - private static MethodType getMethodType(AccessibleObject ao) { + private static MethodType getMethodType(final AccessibleObject ao) { final boolean isMethod = ao instanceof Method; final Class<?> rtype = isMethod ? ((Method)ao).getReturnType() : ((Constructor<?>)ao).getDeclaringClass(); final Class<?>[] ptypes = isMethod ? ((Method)ao).getParameterTypes() : ((Constructor<?>)ao).getParameterTypes(); @@ -144,7 +144,7 @@ class CallerSensitiveDynamicMethod extends SingleDynamicMethod { } @Override - MethodHandle getTarget(MethodHandles.Lookup lookup) { + MethodHandle getTarget(final MethodHandles.Lookup lookup) { if(target instanceof Method) { final MethodHandle mh = Lookup.unreflect(lookup, (Method)target); if(Modifier.isStatic(((Member)target).getModifiers())) { @@ -155,4 +155,9 @@ class CallerSensitiveDynamicMethod extends SingleDynamicMethod { return StaticClassIntrospector.editConstructorMethodHandle(Lookup.unreflectConstructor(lookup, (Constructor<?>)target)); } + + @Override + boolean isConstructor() { + return target instanceof Constructor; + } } |