2015-01-04 40 views
1

在我的代码我呼吁:Android Studio中给出了冗余投警告,但它不是真正的冗余

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

和它的作品。然而,Android Studio给了我一个警告,说转换为(Integer)是多余的。但是,如果我删除了强制转换,则会由于不兼容的类型int & java.lang.Object而引发错误。我做错了什么,我能做些什么来消除这个警告?

+0

当您看到该消息时,Android Studio会如何改正它?此外,运行检查:分析 - >检查代码,它很可能会为您解决它。 –

+0

@JaredBurrows我遇到了分析问题 - >检查代码,谢谢你。 –

回答

1

不,没有什么与您的代码,显然这里是错误的,在我的机器上相同的结果,而不是与Android相关。

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

(你可能要投射到int(不Integer),但不会解决这个问题。)

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

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

,这将不抱怨。

+0

嗯,我很高兴知道我不是唯一有这个问题的人。提取工作来消除那个讨厌的错误,谢谢。 –

+0

这真的很奇怪。 'ints [((Integer)foo)] = 1;'不好,但'System.out.println(ints [((Integer)foo)]);'显然是。 –