Android Studio 给出了多余的转换警告,但它并不是真的多余

Android Studio gives redundant cast warning, but it's not really redundant

在我的代码中调用:

myArray[ (Integer) compoundButton.getTag() ] = true;

并且有效。但是 Android Studio 警告我说强制转换为 (Integer) 是多余的。但是,如果我删除强制转换,它会由于不兼容的类型 int & java.lang.Object 而引发错误。我做错了什么吗?我该怎么做才能删除此警告?

不,你的代码没有任何问题,显然这里的 AS 是错误的,我机器上的结果相同,与 Android 无关。

int[] ints = new int[] {};
Object foo = new Object();
ints[((int) foo)] = 1; // complains

(您可能想转换为 int(而不是 Integer),但这不会解决问题。)

顺便说一句,如果你提取一个变量

int indexFromTag = (int) button.getTag();
myArray[indexFromTag];

AS不会抱怨