question: private int compareParameterListPreferability_cmpTypeSpecificty ( final Class paramType1 , final Class paramType2 ) { final Class nonPrimParamType1 = paramType1 . isPrimitive ( ) ? ClassUtil . primitiveClassToBoxingClass ( paramType1 ) : paramType1 ; final Class nonPrimParamType2 = paramType2 . isPrimitive ( ) ? ClassUtil . primitiveClassToBoxingClass ( paramType2 ) : paramType2 ; if ( nonPrimParamType1 == nonPrimParamType2 ) { if ( nonPrimParamType1 != paramType1 ) { if ( nonPrimParamType2 != paramType2 ) { return 0 ; } else { return 1 ; } } else if ( nonPrimParamType2 != paramType2 ) { return - 1 ; } else { return 0 ; } } else if ( nonPrimParamType2 . isAssignableFrom ( nonPrimParamType1 ) ) { return 2 ; } else if ( nonPrimParamType1 . isAssignableFrom ( nonPrimParamType2 ) ) { return - 2 ; } if ( nonPrimParamType1 == Character . class && nonPrimParamType2 . isAssignableFrom ( String . class ) ) { return 2 ; } if ( nonPrimParamType2 == Character . class && nonPrimParamType1 . isAssignableFrom ( String . class ) ) { return - 2 ; } else { return 0 ; } }
target:  Trivial comparison of type specificities; unaware of numerical conversions. 