This commit is contained in:
Redkale
2020-09-18 14:09:27 +08:00
parent 21250794f5
commit 76afab3c78
4 changed files with 4 additions and 2 deletions

View File

@@ -86,6 +86,7 @@ public final class DeMember<R extends Reader, T, F> {
public int compareTo(boolean fieldSort, DeMember<R, T, F> o) {
if (o == null) return -1;
if (this.position != o.position) return (this.position == 0 ? Integer.MAX_VALUE : this.position) - (o.position == 0 ? Integer.MAX_VALUE : o.position);
if (this.index != o.index) return (this.index == 0 ? Integer.MAX_VALUE : this.index) - (o.index == 0 ? Integer.MAX_VALUE : o.index);
if (this.index != 0) throw new RuntimeException("fields (" + attribute.field() + ", " + o.attribute.field() + ") have same ConvertColumn.index(" + this.index + ") in " + attribute.declaringClass());
return fieldSort ? this.attribute.field().compareTo(o.attribute.field()) : 0;

View File

@@ -91,6 +91,7 @@ public final class EnMember<W extends Writer, T, F> {
public int compareTo(boolean fieldSort, EnMember<W, T, F> o) {
if (o == null) return -1;
if (this.position != o.position) return (this.position == 0 ? Integer.MAX_VALUE : this.position) - (o.position == 0 ? Integer.MAX_VALUE : o.position);
if (this.index != o.index) return (this.index == 0 ? Integer.MAX_VALUE : this.index) - (o.index == 0 ? Integer.MAX_VALUE : o.index);
if (this.index != 0) throw new RuntimeException("fields (" + attribute.field() + ", " + o.attribute.field() + ") have same ConvertColumn.index(" + this.index + ") in " + attribute.declaringClass());
return fieldSort ? this.attribute.field().compareTo(o.attribute.field()) : 0;

View File

@@ -166,7 +166,6 @@ public class ObjectDecoder<R extends Reader, T> implements Decodeable<R, T> {
}
}
this.members = list.toArray(new DeMember[list.size()]);
Arrays.sort(this.members, (a, b) -> a.compareTo(factory.isFieldSort(), b));
Set<Integer> pos = new HashSet<>();
for (int i = 0; i < this.members.length; i++) {
if (this.members[i].index > 0) pos.add(this.members[i].index);
@@ -180,6 +179,7 @@ public class ObjectDecoder<R extends Reader, T> implements Decodeable<R, T> {
member.position = pidx;
}
}
Arrays.sort(this.members, (a, b) -> a.compareTo(factory.isFieldSort(), b));
if (cps != null) {
final String[] fields = cps;

View File

@@ -116,7 +116,6 @@ public class ObjectEncoder<W extends Writer, T> implements Encodeable<W, T> {
list.add(member);
}
this.members = list.toArray(new EnMember[list.size()]);
Arrays.sort(this.members, (a, b) -> a.compareTo(factory.isFieldSort(), b));
Set<Integer> pos = new HashSet<>();
for (int i = 0; i < this.members.length; i++) {
if (this.members[i].index > 0) pos.add(this.members[i].index);
@@ -130,6 +129,7 @@ public class ObjectEncoder<W extends Writer, T> implements Encodeable<W, T> {
member.position = pidx;
}
}
Arrays.sort(this.members, (a, b) -> a.compareTo(factory.isFieldSort(), b));
} catch (Exception ex) {
throw new ConvertException(ex);