Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package com.fasterxml.jackson.databind.introspect;
 
Helper class needed to be able to efficiently access class member functions (java.lang.reflect.Methods and java.lang.reflect.Constructors) in java.util.Maps.
public final class MemberKey
    final static Class<?>[] NO_CLASSES = new Class<?>[0];
    final String _name;
    final Class<?>[] _argTypes;
    public MemberKey(Method m)
    {
        this(m.getName(), m.getParameterTypes());
    }
    public MemberKey(Constructor<?> ctor)
    {
        this(""ctor.getParameterTypes());
    }
    public MemberKey(String nameClass<?>[] argTypes)
    {
         = name;
         = (argTypes == null) ?  : argTypes;
    }
    @Override
    public String toString() {
        return  + "(" + .+"-args)";
    }
    @Override
    public int hashCode()
    {
        return .hashCode() + .;
    }
    @Override
    public boolean equals(Object o)
    {
        if (o == thisreturn true;
        if (o == nullreturn false;
        if (o.getClass() != getClass()) {
            return false;
        }
        MemberKey other = (MemberKeyo;
        if (!.equals(other._name)) {
            return false;
        }
        Class<?>[] otherArgs = other._argTypes;
        int len = .;
        if (otherArgs.length != len) {
            return false;
        }
        for (int i = 0; i < len; ++i) {
            Class<?> type1 = otherArgs[i];
            Class<?> type2 = [i];
            if (type1 == type2) {
                continue;
            }
            /* 23-Feb-2009, tatu: Are there any cases where we would have to
             *   consider some narrowing conversions or such? For now let's
             *   assume exact type match is enough
             */
            /* 07-Apr-2009, tatu: Indeed there are (see [JACKSON-97]).
             *    This happens with generics when a bound is specified.
             *    I hope this works; check here must be transitive
             */
            if (type1.isAssignableFrom(type2) || type2.isAssignableFrom(type1)) {
                continue;
            }
            return false;
        }
        return true;
    }
New to GrepCode? Check out our FAQ X