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不会抱怨
在我的代码中调用:
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不会抱怨