同样的输入,为什么Objects.hash()方法返回的hash值每次不一样?

开发过程中发现一个问题,项目中用Set保存AopMethod对象用于去重,但是发现即使往set中添加相同内容的对象,每次也能够添加成功。

AopMethod类的部分代码如下:

public class AopMethod { private String methodName; private Class<?>[] parameterTypes = new Class<?>[]{}; //是否需要忽略掉参数匹配 private boolean ignoreParameterTypes; ​ public AopMethod() { } ​ @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; AopMethod aopMethod = (AopMethod) o; return ignoreParameterTypes == aopMethod.ignoreParameterTypes && Objects.equals(methodName, aopMethod.methodName) && Arrays.equals(parameterTypes, aopMethod.parameterTypes); } ​ @Override public int hashCode() { return Objects.hash(methodName, parameterTypes, ignoreParameterTypes); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgwpy.html