boolean (@Nullable PsiAnnotationMemberValue value1, @Nullable PsiAnnotationMemberValue value2) { if (value1 instanceof PsiArrayInitializerMemberValue && value2 instanceof PsiArrayInitializerMemberValue) { final PsiAnnotationMemberValue[] initializers1 = ((PsiArrayInitializerMemberValue)value1).getInitializers(); final PsiAnnotationMemberValue[] initializers2 = ((PsiArrayInitializerMemberValue)value2).getInitializers(); if (initializers1.length != initializers2.length) { return false; } return ArrayUtil.areEqual(initializers1, initializers2, AnnotationUtil::equal); } if (value1 != null && value2 != null) { final PsiConstantEvaluationHelper constantEvaluationHelper = JavaPsiFacade.getInstance(value1.getProject()).getConstantEvaluationHelper(); final Object const1 = constantEvaluationHelper.computeConstantExpression(value1); final Object const2 = constantEvaluationHelper.computeConstantExpression(value2); return const1 != null && const1.equals(const2); } return false; }