@@ -548,19 +548,12 @@ private Type extractGenericParameterTypFromMethodParameter(MethodParameter metho
548548 genericParameterType = ((ParameterizedType ) genericParameterType ).getActualTypeArguments ()[0 ];
549549 }
550550 else if (parameterizedType .getRawType ().equals (List .class )
551- && parameterizedType .getActualTypeArguments ().length == 1 ) { // NOSONAR
551+ && parameterizedType .getActualTypeArguments ().length == 1 ) {
552552
553553 Type paramType = parameterizedType .getActualTypeArguments ()[0 ];
554554 this .isConsumerRecordList = paramType .equals (ConsumerRecord .class )
555- || (paramType instanceof ParameterizedType
556- && ((ParameterizedType ) paramType ).getRawType ().equals (ConsumerRecord .class )
557- || (paramType instanceof WildcardType
558- && ((WildcardType ) paramType ).getUpperBounds () != null
559- && ((WildcardType ) paramType ).getUpperBounds ().length > 0
560- && ((WildcardType ) paramType ).getUpperBounds ()[0 ] instanceof ParameterizedType
561- && ((ParameterizedType ) ((WildcardType )
562- paramType ).getUpperBounds ()[0 ]).getRawType ().equals (ConsumerRecord .class ))
563- );
555+ || (isSimpleListOfConsumerRecord (paramType )
556+ || isListOfConsumerRecordUpperBounded (paramType ));
564557 boolean messageHasGeneric = paramType instanceof ParameterizedType
565558 && ((ParameterizedType ) paramType ).getRawType ().equals (Message .class );
566559 this .isMessageList = paramType .equals (Message .class ) || messageHasGeneric ;
@@ -575,6 +568,24 @@ else if (parameterizedType.getRawType().equals(List.class)
575568 return genericParameterType ;
576569 }
577570
571+ private boolean isSimpleListOfConsumerRecord (Type paramType ) {
572+ return paramType instanceof ParameterizedType
573+ && ((ParameterizedType ) paramType ).getRawType ().equals (ConsumerRecord .class );
574+ }
575+
576+ private boolean isListOfConsumerRecordUpperBounded (Type paramType ) {
577+ return isWildCardWithUpperBound (paramType )
578+ && ((WildcardType ) paramType ).getUpperBounds ()[0 ] instanceof ParameterizedType
579+ && ((ParameterizedType ) ((WildcardType ) paramType ).getUpperBounds ()[0 ])
580+ .getRawType ().equals (ConsumerRecord .class );
581+ }
582+
583+ private boolean isWildCardWithUpperBound (Type paramType ) {
584+ return paramType instanceof WildcardType
585+ && ((WildcardType ) paramType ).getUpperBounds () != null
586+ && ((WildcardType ) paramType ).getUpperBounds ().length > 0 ;
587+ }
588+
578589 /*
579590 * Don't consider parameter types that are available after conversion.
580591 * Acknowledgment, ConsumerRecord, Consumer, ConsumerRecord<...>, Consumer<...>, and Message<?>.
0 commit comments