该文档将方法描述为:



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

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

我想对找到的每个Field进行迭代,并对每个迭代的元素增加一个计数器。然后,将特定元素的ID分配给计数器等于的值,即使字段未按一致的顺序返回,这些“ID”也不一致。

最佳答案

顺序不需要在运行之间保持稳定。但是,该字段的hashCode()值被定义为稳定的(已记录为始终是field.getDeclaringClass().getName().hashCode() ^ field.getName().hashCode()),因此您可以使用该字段作为您的ID,同时要确保不能保证哈希码是唯一的。

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

10-06 16:11
查看更多