1

このクラスがあるとします

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 が宣言された順序ではないフィールドを表示するのはなぜですか?(名前、所有者、品種) 出力は次のとおりです: 品種、名前、所有者

4

1 に答える 1

0

この方法に関しては、Android のドキュメントが完全ではないようです。Oracle のドキュメントには、次のように記載されています。

返される配列の要素はソートされておらず、特定の順序でもありません。

フィールドがメモリに格納される/キャッシュされる方法に関する正確な JVM 仕様はないようです。ただし、 Android クラスのソースをいつでも確認して、正確なフィールドの順序についての洞察を得ることができます (ただし、バージョンによって異なる場合があります)。

于 2013-07-24T01:53:46.930 に答える