diff options
Diffstat (limited to 'src/jdk/internal/dynalink/beans/ClassString.java')
-rw-r--r-- | src/jdk/internal/dynalink/beans/ClassString.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/jdk/internal/dynalink/beans/ClassString.java b/src/jdk/internal/dynalink/beans/ClassString.java index d6c6da08..dfcb3786 100644 --- a/src/jdk/internal/dynalink/beans/ClassString.java +++ b/src/jdk/internal/dynalink/beans/ClassString.java @@ -96,6 +96,11 @@ import jdk.internal.dynalink.support.TypeUtilities; * @author Attila Szegedi */ final class ClassString { + /** + * An anonymous inner class used solely to represent the "type" of null values for method applicability checking. + */ + static final Class<?> NULL_CLASS = (new Object() { /* Intentionally empty */ }).getClass(); + private final Class<?>[] classes; private int hashCode; @@ -203,6 +208,9 @@ final class ClassString { } private static boolean canConvert(LinkerServices ls, Class<?> from, Class<?> to) { + if(from == NULL_CLASS) { + return !to.isPrimitive(); + } return ls == null ? TypeUtilities.isMethodInvocationConvertible(from, to) : ls.canConvert(from, to); } } |