diff --git a/src/org/redkale/util/Creator.java b/src/org/redkale/util/Creator.java index ceac35ba7..134810f9d 100644 --- a/src/org/redkale/util/Creator.java +++ b/src/org/redkale/util/Creator.java @@ -49,7 +49,7 @@ public interface Creator { } Constructor constructor = null; for (Constructor c : clazz.getConstructors()) { - if (c.getParameterCount() == 0) { + if (c.getParameterTypes().length == 0) { //为了兼容android 而不使用 getParameterCount() constructor = c; break; } @@ -93,8 +93,8 @@ public interface Creator { mv.visitTypeInsn(NEW, interName); mv.visitInsn(DUP); //--------------------------------------- + Class[] params = constructor.getParameterTypes(); { - Parameter[] params = constructor.getParameters(); final int[] iconsts = {ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5}; for (int i = 0; i < params.length; i++) { mv.visitVarInsn(ALOAD, 1); @@ -104,7 +104,7 @@ public interface Creator { mv.visitIntInsn(BIPUSH, i); } mv.visitInsn(AALOAD); - final Class ct = params[i].getType(); + final Class ct = params[i]; if (ct.isPrimitive()) { final Class bigct = Array.get(Array.newInstance(ct, 1), 0).getClass(); mv.visitTypeInsn(CHECKCAST, bigct.getName().replace('.', '/')); @@ -122,7 +122,7 @@ public interface Creator { //--------------------------------------- mv.visitMethodInsn(INVOKESPECIAL, interName, "", Type.getConstructorDescriptor(constructor), false); mv.visitInsn(ARETURN); - mv.visitMaxs((constructor.getParameterCount() > 0 ? (constructor.getParameterCount() + 3) : 2), 2); + mv.visitMaxs((params.length > 0 ? (params.length + 3) : 2), 2); mv.visitEnd(); } { //虚拟 create 方法 diff --git a/src/org/redkale/util/Reproduce.java b/src/org/redkale/util/Reproduce.java index 29ada3ef7..c88579bf9 100644 --- a/src/org/redkale/util/Reproduce.java +++ b/src/org/redkale/util/Reproduce.java @@ -72,7 +72,7 @@ public interface Reproduce { for (java.lang.reflect.Method getter : srcClass.getMethods()) { if (Modifier.isStatic(getter.getModifiers())) continue; - if (getter.getParameterCount() > 0) continue; + if (getter.getParameterTypes().length > 0) continue; //为了兼容android 而不使用 getParameterCount() if ("getClass".equals(getter.getName())) continue; if (!getter.getName().startsWith("get") && !getter.getName().startsWith("is")) continue; java.lang.reflect.Method setter; diff --git a/src/org/redkale/util/TypeToken.java b/src/org/redkale/util/TypeToken.java index 00489c284..cf9493de9 100644 --- a/src/org/redkale/util/TypeToken.java +++ b/src/org/redkale/util/TypeToken.java @@ -116,7 +116,7 @@ public abstract class TypeToken { boolean first = true; for (Type t : actualTypeArguments) { if (!first) sb.append(", "); - sb.append(t.getTypeName()); + sb.append(t); first = false; } sb.append(">");