diff --git a/kernel-d-event/event-sdk/src/main/java/cn/stylefeng/roses/kernel/event/sdk/publish/BusinessEventPublisher.java b/kernel-d-event/event-sdk/src/main/java/cn/stylefeng/roses/kernel/event/sdk/publish/BusinessEventPublisher.java
index 6a32b2dd1..caa97e67e 100644
--- a/kernel-d-event/event-sdk/src/main/java/cn/stylefeng/roses/kernel/event/sdk/publish/BusinessEventPublisher.java
+++ b/kernel-d-event/event-sdk/src/main/java/cn/stylefeng/roses/kernel/event/sdk/publish/BusinessEventPublisher.java
@@ -67,12 +67,15 @@ public class BusinessEventPublisher {
 
             // 如果发布事件的时候,包含参数,则判断method的第一个参数是否和businessObject的class一样,不一样则不调用
             else {
-                if (parameterClassType != null && parameterClassType.equals(businessObject.getClass())) {
-                    try {
-                        listenerMethod.invoke(bean, businessObject);
-                    } catch (IllegalAccessException | InvocationTargetException e) {
-                        log.error("方法调用失败,反射调用异常", e);
-                        throw new ServiceException(EventExceptionEnum.ERROR_INVOKE);
+                if (parameterClassType != null) {
+                    if (parameterClassType.equals(businessObject.getClass())
+                            || parameterClassType.isAssignableFrom(businessObject.getClass())) {
+                        try {
+                            listenerMethod.invoke(bean, businessObject);
+                        } catch (IllegalAccessException | InvocationTargetException e) {
+                            log.error("方法调用失败,反射调用异常", e);
+                            throw new ServiceException(EventExceptionEnum.ERROR_INVOKE);
+                        }
                     }
                 }
             }