String methodKey = methodKeyBuilder.toString(); Class<?> methodClass = method.getDeclaringClass(); // 放进HashMap查看是否有重复 Class<?> methodClassOld = subscriberClassByMethodKey.put(methodKey, methodClass); // 如果方法签名重复,并且两个方法是在同一个类或者存在父子或接口继承关系 if (methodClassOld == null || methodClassOld.isAssignableFrom(methodClass)) { // Only add if not already found in a sub class return true; } else { // Revert the put, old class is further down the class hierarchy subscriberClassByMethodKey.put(methodKey, methodClassOld); return false; } }
近期评论