【发布时间】:2012-03-01 10:32:32
【问题描述】:
我刚刚从编译器中看到这条有趣的消息,但我不知道为什么会这样。是这样的
示例 1。
Button test = (Button) findViewById(R.id.someButtonId);
test.setOnClickListener(this);
示例 2。
findViewById(R.id.someButtonId).setOnClickListener(this);
在第一个示例中,我需要将findViewById 返回的对象强制转换为Button。在第二个示例中,我不必强制转换返回的对象,因为我没有使用另一个 Button 类对象。如果我尝试通过
((Button)findViewById(R.id.someButtonId)).setOnClickListener(this);
我会收到警告Casting findViewById(R.id.someButtonId) to Button is redundant。
为什么会这样?我不是要删除演员警告。我想了解这背后的逻辑,以及如果我不尝试使用findViewById 返回的对象初始化另一个对象,为什么不需要强制转换。
【问题讨论】:
-
@Samir 我知道如何删除它:)。我不需要那个。我在问为什么不需要强制转换。
-
:( 我没有收到警告
-
@rajesh.adhi 使用 IntelliJ IDEA,你会的。最好的工具! ;)
-
:我正在使用 Eclipse,谢谢
标签: android button casting findviewbyid