3

我是 Java 的初学者,遇到过这行代码:

Button orderButton = (Button)findViewById(R.id.order);

(Button)当它在括号内时是什么意思?

像这样放在里面是什么意思?

4

4 回答 4

6

这是一个类型转换。您正在将结果转换为 typeof(Button)

于 2012-05-11T15:42:45.113 回答
3

强制转换的目的是让执行环境和 IDE 知道 findViewById(R.id.order); 返回的对象的类型。

findViewById(R.id.order) 不返回特定类型,而是返回通用对象。由于 Button 包含与对象引用的项目相关的方法,因此您需要告诉它它的类型,以便新变量 orderButton 可以访问正确的方法。

这是一个简单的示例

http://www.java-samples.com/showtutorial.php?tutorialid=1170

于 2012-05-11T15:45:12.803 回答
1

这是一个类型转换findViewById返回一个对象,View但你需要一个Button对象。将(Button)视图转换为按钮

于 2012-05-11T15:43:39.620 回答
1

这称为类型转换。由返回的对象findViewById(R.id.order);可能是Button扩展自的东西。编写代码的人认为该函数调用返回的对象实际上是 的实例Button,因此他将函数的返回值类型转换为 的实例Button

于 2012-05-11T15:44:21.323 回答