假设我们有这个类
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会为我提供未声明订单的字段?(名称,所有者,品种) 输出是:品种,名称,所有者
答案 0 :(得分:0)
似乎有关此方法的Android文档不完整。 Oracle documentation提及以下内容:
返回的数组中的元素没有排序,也没有排序 特别的顺序。
看起来没有关于字段如何存储在内存/缓存中的确切JVM规范。但是,您始终可以检查Android Class source以获取有关确切字段顺序的信息(但版本可能因版本而异)。