import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List;
public class DemoClass { private int num; private String name; private boolean flag;
public static void main(String[] args) {
List fieldList = new ArrayList<>(Arrays.asList(DemoClass.class.getDeclaredFields()));
}
}
fieldList.sort(Comparator.comparingInt(field -> field.getAnnotation(Position.class).value()));
for (Field field : fieldList) { System.out.println(field.getName() + ": " + field.getType().getSimpleName()); }
其中,Position注解表示字段在列表中的位置,可以自定义该注解,例如:
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface Position { int value(); }
使用示例:
private int num;
@Position(1) private String name;
@Position(2) private boolean flag;