使用类和方法名称比较两个源位置

时间:2014-05-09 13:30:02

标签: java

class SourceLocation {
    Class<?> sourceClass;
    String sourceMethodName;

}

我想将SourceLocation对象存储在散列集合中,因此我需要覆盖此类的hashCode(),但这需要我使用Class的hashCode(),它似乎没有被覆盖。对于任何一个类,它只有一个代表它的单例类吗?如果是这样,那么我没有问题,但如果任何给定的类可以有多个Class对象,那么我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

您可以使用sourceClass.getName()的结果生成用于散列的字符串。为了获得最佳结果,您应该将其与sourceMethodName连接并对结果进行哈希处理,或者分别对两个字符串进行哈希处理并将它们组合起来(hash1*31 + hash2是一种常见方法)。