gpt4 book ai didi

java - Class.getDeclaredFields() 是否以一致的顺序返回成员?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:58 27 4
gpt4 key购买 nike

文档将该方法描述为:

The elements in the array returned are not sorted and are not in any particular order

但是我不确定这是否意味着每次应用程序调用例程时顺序都不一致。

我正在寻找一种方法来为找到的每个字段配对唯一 ID - 但它还需要与下次运行应用程序时保持一致,即连续生成相同的 ID。

我只想遍历找到的每个字段并为每个迭代的元素增加一个计数器。然后将特定元素的 ID 分配给计数器等于的任何值,这些“id”不一致,但如果字段未以一致的顺序返回。

最佳答案

顺序不需要在运行中保持稳定。然而,该字段的 hashCode() 值被定义为稳定的(它被记录为始终是 field.getDeclaringClass().getName().hashCode() ^ field.getName().hashCode ()),因此您可以将其用作您的 ID,但要了解哈希码不能保证是唯一的。

或者,您可以使用适合您的任何排序标准自行对从 getDeclaredFields() 返回的结果进行排序。

关于java - Class.getDeclaredFields() 是否以一致的顺序返回成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18325666/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com