可扩展类的哈希代码(未来证明)

kun*_*gcc 0 java math hash-function hashcode

由于我没有任何很好的数学技能,我问你是否有任何算法我应该用于一个可能在将来改变的课程.

考虑以下场景:

"角色"类包含以下字段:

private boolean admin;
private boolean printer;
Run Code Online (Sandbox Code Playgroud)

几个星期后,我决定添加一个角色"客人":

private boolean admin;
private boolean printer;
private boolean guest;
Run Code Online (Sandbox Code Playgroud)

几周后我决定删除角色"打印机";

private boolean admin;
private boolean guest;
Run Code Online (Sandbox Code Playgroud)

由于我将在数据库中保留哈希码,因此我必须100%确定此类的所有版本都生成唯一的哈希码.

也许这不是问题,我一直使用Eclispe IDE源代码生成器中提供的那个.

你能告诉我,如果我对Eclipse IDE(Indigo)Java版本> = 6方法安全,或者给我一些关于这个主题的其他建议.我相信这是一件很平常的事情.

提前致谢

Jon*_*eet 12

因为我会在数据库中保留哈希码

不要那样做.结果hashCode并不意味着坚持下去.特别是,从文档:

从应用程序的一次执行到同一应用程序的另一次执行,该整数不需要保持一致.

下一个:

我必须100%确定此类的所有版本都生成唯一的哈希码.

哈希代码并不是唯一的,它们通常都不是.好的,你的案例中只有5位数据,但总的来说并非如此......

听起来你有不同的正常要求Object.hashCode()- 所以你不应该期望任何自动生成的实现知道你的特殊要求.我建议你确切说明你的要求是什么,我们可以找出做什么......