提交 e38c0205 编写于 作者: J Juergen Hoeller

TypeDescriptor efficiently matches equal annotations as well

Issue: SPR-15060
上级 963ea062
......@@ -479,7 +479,7 @@ public class TypeDescriptor implements Serializable {
}
if (anns.length > 0) {
for (int i = 0; i < anns.length; i++) {
if (anns[i] != otherAnns[i]) {
if (!annotationEquals(anns[i], otherAnns[i])) {
return false;
}
}
......@@ -487,6 +487,11 @@ public class TypeDescriptor implements Serializable {
return true;
}
private boolean annotationEquals(Annotation ann, Annotation otherAnn) {
// Annotation.equals is reflective and pretty slow, so let's check identity and proxy type first.
return (ann == otherAnn || (ann.getClass() == otherAnn.getClass() && ann.equals(otherAnn)));
}
@Override
public int hashCode() {
return getType().hashCode();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册