do not check array and class starts with java. or javax.
This commit is contained in:
骏烈
2017-11-01 20:04:22 +08:00
parent bce928dc04
commit 0cc98d1099
2 changed files with 16 additions and 8 deletions

View File

@@ -86,8 +86,12 @@ class MapOrSetKeyShouldOverrideHashCodeEqualsRule : AbstractEclipseRule() {
}
private fun isOverrideEqualsAndHashCode(genericType: ITypeBinding): Boolean {
// skip enum
if (genericType.isEnum || genericType.isInterface || genericType.isTypeVariable || genericType.isWildcardType) {
val skip = genericType.isEnum || genericType.isInterface || genericType.isArray
|| genericType.isTypeVariable || genericType.isWildcardType
|| genericType.qualifiedName?.startsWith(skipJdkPackageJava) ?: false
|| genericType.qualifiedName?.startsWith(skipJdkPackageJavax) ?: false
// skip
if (skip) {
return true
}

View File

@@ -171,16 +171,20 @@ class MapOrSetKeyShouldOverrideHashCodeEqualsInspection : BaseInspection, AliBas
companion object {
private val skipJdkPackageJava = "java."
private val skipJdkPackageJavax = "javax."
private fun redefineHashCodeEquals(psiType: PsiType): Boolean {
if (psiType !is PsiClassType) {
return true
}
val psiClass = psiType.resolve()
if (psiClass == null || psiClass.containingFile == null || psiClass is PsiTypeParameter
|| psiClass.isEnum || psiClass.isInterface) {
return true
}
if (psiClass.containingFile.fileType !is JavaFileType) {
val psiClass = psiType.resolve() ?: return false
val skip = psiClass.containingFile == null || psiClass is PsiTypeParameter
|| psiClass.isEnum || psiClass.isInterface
|| psiClass.containingFile.fileType !is JavaFileType
|| psiClass.qualifiedName?.startsWith(skipJdkPackageJava) ?: false
|| psiClass.qualifiedName?.startsWith(skipJdkPackageJavax) ?: false
if (skip) {
return true
}
val hashCodeMethods = psiClass.findMethodsByName(ObjectConstants.METHOD_NAME_HASHCODE, false)