class SourceLocation {
Class<?> sourceClass;
String sourceMethodName;
}
我想将SourceLocation对象存储在散列集合中,因此我需要覆盖此类的hashCode(),但这需要我使用Class的hashCode(),它似乎没有被覆盖。对于任何一个类,它只有一个代表它的单例类吗?如果是这样,那么我没有问题,但如果任何给定的类可以有多个Class对象,那么我不知道该怎么做。
答案 0 :(得分:0)
您可以使用sourceClass.getName()
的结果生成用于散列的字符串。为了获得最佳结果,您应该将其与sourceMethodName
连接并对结果进行哈希处理,或者分别对两个字符串进行哈希处理并将它们组合起来(hash1*31 + hash2
是一种常见方法)。