BinaryStruct now checks super class fields also
This commit is contained in:
parent
7176bddc15
commit
46de7e05d1
2 changed files with 9 additions and 7 deletions
|
|
@ -32,13 +32,15 @@ public class BinaryFieldData {
|
|||
if (!cache.containsKey(clazz)) {
|
||||
try {
|
||||
ArrayList<BinaryFieldData> list = new ArrayList<>();
|
||||
for (Field field : clazz.getDeclaredFields()) {
|
||||
for(Class<?> cc = clazz; cc != Object.class ;cc = cc.getSuperclass()) { // iterate through all super classes
|
||||
for (Field field : cc.getDeclaredFields()) {
|
||||
if (field.isAnnotationPresent(BinaryField.class) ||
|
||||
field.isAnnotationPresent(CustomBinaryField.class) ||
|
||||
field.isAnnotationPresent(VariableLengthBinaryField.class))
|
||||
|
||||
list.add(new BinaryFieldData(field));
|
||||
}
|
||||
}
|
||||
Collections.sort(list, new Comparator<BinaryFieldData>(){
|
||||
@Override
|
||||
public int compare(BinaryFieldData o1, BinaryFieldData o2) {
|
||||
|
|
|
|||
|
|
@ -137,8 +137,8 @@ public class JSONObjectOutputStream extends OutputStream implements ObjectOutput
|
|||
}
|
||||
// Add all the fields to the DataNode
|
||||
for(Field field : obj.getClass().getDeclaredFields()){
|
||||
if((field.getModifiers() & Modifier.STATIC) == 0 &&
|
||||
(field.getModifiers() & Modifier.TRANSIENT) == 0){
|
||||
if( ! Modifier.isStatic(field.getModifiers()) &&
|
||||
! Modifier.isTransient(field.getModifiers())){
|
||||
field.setAccessible(true);
|
||||
Object fieldObj = field.get(obj);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue