HBASE-26638 Cherry-pick the ReflectionUtils improvements in HBASE-21515 to branch-2 (#3993)

Signed-off-by: Yulin Niu <niuyulin@apache.org>
This commit is contained in:
Duo Zhang 2022-01-02 17:32:45 +08:00
parent efeec919de
commit 4d5fe404f4
1 changed files with 13 additions and 9 deletions

View File

@ -83,15 +83,19 @@ public class ReflectionUtils {
boolean match = true; boolean match = true;
for (int i = 0; i < ctorParamTypes.length && match; ++i) { for (int i = 0; i < ctorParamTypes.length && match; ++i) {
Class<?> paramType = paramTypes[i].getClass(); if (paramTypes[i] == null) {
match = (!ctorParamTypes[i].isPrimitive()) ? ctorParamTypes[i].isAssignableFrom(paramType) : match = !ctorParamTypes[i].isPrimitive();
((int.class.equals(ctorParamTypes[i]) && Integer.class.equals(paramType)) || } else {
(long.class.equals(ctorParamTypes[i]) && Long.class.equals(paramType)) || Class<?> paramType = paramTypes[i].getClass();
(double.class.equals(ctorParamTypes[i]) && Double.class.equals(paramType)) || match = (!ctorParamTypes[i].isPrimitive()) ? ctorParamTypes[i].isAssignableFrom(paramType)
(char.class.equals(ctorParamTypes[i]) && Character.class.equals(paramType)) || : ((int.class.equals(ctorParamTypes[i]) && Integer.class.equals(paramType)) ||
(short.class.equals(ctorParamTypes[i]) && Short.class.equals(paramType)) || (long.class.equals(ctorParamTypes[i]) && Long.class.equals(paramType)) ||
(boolean.class.equals(ctorParamTypes[i]) && Boolean.class.equals(paramType)) || (double.class.equals(ctorParamTypes[i]) && Double.class.equals(paramType)) ||
(byte.class.equals(ctorParamTypes[i]) && Byte.class.equals(paramType))); (char.class.equals(ctorParamTypes[i]) && Character.class.equals(paramType)) ||
(short.class.equals(ctorParamTypes[i]) && Short.class.equals(paramType)) ||
(boolean.class.equals(ctorParamTypes[i]) && Boolean.class.equals(paramType)) ||
(byte.class.equals(ctorParamTypes[i]) && Byte.class.equals(paramType)));
}
} }
if (match) { if (match) {