在我的代码我呼吁:Android Studio中给出了冗余投警告,但它不是真正的冗余
myArray[ (Integer) compoundButton.getTag() ] = true;
和它的作品。然而,Android Studio给了我一个警告,说转换为(Integer)是多余的。但是,如果我删除了强制转换,则会由于不兼容的类型int & java.lang.Object而引发错误。我做错了什么,我能做些什么来消除这个警告?
在我的代码我呼吁:Android Studio中给出了冗余投警告,但它不是真正的冗余
myArray[ (Integer) compoundButton.getTag() ] = true;
和它的作品。然而,Android Studio给了我一个警告,说转换为(Integer)是多余的。但是,如果我删除了强制转换,则会由于不兼容的类型int & java.lang.Object而引发错误。我做错了什么,我能做些什么来消除这个警告?
不,没有什么与您的代码,显然这里是错误的,在我的机器上相同的结果,而不是与Android相关。
int[] ints = new int[] {};
Object foo = new Object();
ints[((int) foo)] = 1; // complains
(你可能要投射到int
(不Integer
),但不会解决这个问题。)
顺便说一句,如果你提取变量
int indexFromTag = (int) button.getTag();
myArray[indexFromTag];
,这将不抱怨。
嗯,我很高兴知道我不是唯一有这个问题的人。提取工作来消除那个讨厌的错误,谢谢。 –
这真的很奇怪。 'ints [((Integer)foo)] = 1;'不好,但'System.out.println(ints [((Integer)foo)]);'显然是。 –
当您看到该消息时,Android Studio会如何改正它?此外,运行检查:分析 - >检查代码,它很可能会为您解决它。 –
@JaredBurrows我遇到了分析问题 - >检查代码,谢谢你。 –