This commit is contained in:
Redkale
2016-07-30 22:06:36 +08:00
parent 72e25d653b
commit c69fcc25db
2 changed files with 7 additions and 1 deletions

View File

@@ -205,6 +205,7 @@ public abstract class ConvertFactory<R extends Reader, W extends Writer> {
* 使所有类的所有被声明为ConvertColumn.ignore = true 的字段或方法变为ConvertColumn.ignore = false * 使所有类的所有被声明为ConvertColumn.ignore = true 的字段或方法变为ConvertColumn.ignore = false
* *
* @param skipIgnore * @param skipIgnore
*
* @return 自身 * @return 自身
*/ */
public ConvertFactory<R, W> skipAllIgnore(final boolean skipIgnore) { public ConvertFactory<R, W> skipAllIgnore(final boolean skipIgnore) {
@@ -386,7 +387,7 @@ public abstract class ConvertFactory<R extends Reader, W extends Writer> {
} else if (clazz == Object.class) { } else if (clazz == Object.class) {
od = new ObjectDecoder(type); od = new ObjectDecoder(type);
decoder = od; decoder = od;
} else if (!clazz.getName().startsWith("java.")) { } else if (!clazz.getName().startsWith("java.") || clazz.getName().startsWith("java.awt.geom.Point2D")) {
Decodeable simpleCoder = null; Decodeable simpleCoder = null;
for (final Method method : clazz.getDeclaredMethods()) { for (final Method method : clazz.getDeclaredMethods()) {
if (!Modifier.isStatic(method.getModifiers())) continue; if (!Modifier.isStatic(method.getModifiers())) continue;

View File

@@ -98,6 +98,10 @@ public final class ObjectDecoder<R extends Reader, T> implements Decodeable<R, T
ref = factory.findRef(method); ref = factory.findRef(method);
if (ref != null && ref.ignore()) continue; if (ref != null && ref.ignore()) continue;
Type t = ObjectEncoder.createClassType(method.getGenericParameterTypes()[0], this.type); Type t = ObjectEncoder.createClassType(method.getGenericParameterTypes()[0], this.type);
if (t instanceof Class) {
Class ct = (Class) t;
if (ct.isInterface() || Modifier.isAbstract(ct.getModifiers())) continue;
}
list.add(new DeMember(ObjectEncoder.createAttribute(factory, clazz, null, null, method), factory.loadDecoder(t))); list.add(new DeMember(ObjectEncoder.createAttribute(factory, clazz, null, null, method), factory.loadDecoder(t)));
} }
if (cps != null) { //可能存在某些构造函数中的字段名不存在setter方法 if (cps != null) { //可能存在某些构造函数中的字段名不存在setter方法
@@ -161,6 +165,7 @@ public final class ObjectDecoder<R extends Reader, T> implements Decodeable<R, T
* 对象格式: [0x1][short字段个数][字段名][字段值]...[0x2] * 对象格式: [0x1][short字段个数][字段名][字段值]...[0x2]
* *
* @param in 输入流 * @param in 输入流
*
* @return 反解析后的对象结果 * @return 反解析后的对象结果
*/ */
@Override @Override