1

假设我们有这个类

动物.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 给我的字段没有声明的顺序?(名称,所有者,品种)输出是:品种,名称,所有者

4

1 回答 1

0

似乎有关此方法的 Android 文档并不完整。Oracle 文档提到以下内容:

返回的数组中的元素没有排序,也没有任何特定的顺序。

看起来没有关于字段如何存储在内存/缓存中的确切 JVM 规范。但是,您始终可以查看Android 类源以深入了解确切的字段顺序(但它可能因版本而异)。

于 2013-07-24T01:53:46.930 回答