java - 使用Class#getDeclaredFields()方法返回的字段数组有没有默认顺序?

查看:576
本文介绍了java - 使用Class#getDeclaredFields()方法返回的字段数组有没有默认顺序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

API对该方法的描述如下:
getDeclaredFields
public Field[] getDeclaredFields()

                      throws SecurityException

返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段。包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。返回数组中的元素没有排序,也没有任何特定的顺序。如果该类或接口不声明任何字段,或者此 Class 对象表示一个基本类型、一个数组类或 void,则此方法返回一个长度为 0 的数组。

我试了几次这个方法,数组元素的顺序是类中声明字段的顺序(默认顺序么?默认按类声明字段的顺序?),而API 对这个方法的描述却是"没有特定的顺序",这里的"没有特定的顺序"会在什么情况的发生?

解决方案

可参阅:
Java反射中的getDeclaredFields()方法的疑问
Does Class.getDeclaredFields() return members in a consistent order?

这篇关于java - 使用Class#getDeclaredFields()方法返回的字段数组有没有默认顺序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆