假设我们有这个类
Animal.java
public class Animal {
private String name;
private String owner;
private String breed;
}
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StringBuilder sb = new StringBuilder();
for(Field f : Animal.class.getDeclaredFields()){
sb.append(f.getName()).append(", ");
}
((TextView) findViewById(R.id.textView1)).setText(sb.toString());
}
}
为什么 TextView 给我的字段没有声明的顺序?(名称、所有者、品种) 输出为:品种、名称、所有者
最佳答案
关于此方法,Android 文档似乎并不完整。 Oracle documentation提到以下内容:
The elements in the array returned are not sorted and are not in any particular order.
似乎没有关于字段如何存储在内存/缓存中的确切 JVM 规范。但是,您始终可以检查 Android Class source深入了解确切的字段顺序(但不同版本可能有所不同)。
关于java - 为什么Android获取类的声明字段是无序的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17823786/