diff --git a/src/com/wentch/redkale/util/Attribute.java b/src/com/wentch/redkale/util/Attribute.java index 354977837..d10c8b0af 100644 --- a/src/com/wentch/redkale/util/Attribute.java +++ b/src/com/wentch/redkale/util/Attribute.java @@ -53,14 +53,15 @@ public interface Attribute { public static Attribute create(String fieldname, final Field field) { return create((Class) field.getDeclaringClass(), fieldname, field, null, null); } + /** * 根据一个Class和field名生成 Attribute 对象。 - * + * * @param * @param * @param clazz - * @param fieldname 字段名, 如果该字段不存在则抛异常 - * @return + * @param fieldname 字段名, 如果该字段不存在则抛异常 + * @return */ public static Attribute create(Class clazz, final String fieldname) { try { @@ -230,6 +231,7 @@ public interface Attribute { mv.visitFieldInsn(GETFIELD, interName, field.getName(), Type.getDescriptor(pcolumn)); if (pcolumn != column) { mv.visitMethodInsn(INVOKESTATIC, columnName, "valueOf", "(" + Type.getDescriptor(pcolumn) + ")" + columnDesc, false); + m = 2; } } } else { @@ -257,6 +259,7 @@ public interface Attribute { try { java.lang.reflect.Method pm = column.getMethod(pcolumn.getSimpleName() + "Value"); mv.visitMethodInsn(INVOKEVIRTUAL, columnName, pm.getName(), Type.getMethodDescriptor(pm), false); + m = 3; } catch (Exception ex) { throw new RuntimeException(ex); //不可能会发生 }