java中的“x =(某物)”是啥意思?
Posted
技术标签:
【中文标题】java中的“x =(某物)”是啥意思?【英文标题】:what does "x = (something)" mean in java?java中的“x =(某物)”是什么意思? 【发布时间】:2015-09-20 07:26:14 【问题描述】:我学android,不懂java(还),在一个示例代码中找到了这个语句:
TextView mainTextView;
mainTextView = (TextView) findViewById(R.id.main_textview);
所以,问题是(如标题所述):“= ( ... )” 是什么意思?
【问题讨论】:
这是一个赋值语句,是Java中最基本的结构之一。我建议在尝试编写 Android 应用程序之前至少学习 Java 语言的基础知识。 将一种类型转换为另一种类型 【参考方案1】:为 Object TextView 创建 objectref
TextView mainTextView;
findViewById 是一个具有参数 R.id.main_textview 的方法,返回的值被转换为 TextView 类型并存储在 mainTextView 中
mainTextView = (TextView) findViewById(R.id.main_textview);
【讨论】:
【参考方案2】:这意味着 findViewById 方法正在将 XML 元素转换为 TextView。
【讨论】:
未将 XML 元素转换为 TextView。将 View 转换为 TextView。 findViewById 返回一个 View 对象 视图是一个 XML 元素。它在布局文件中声明和访问 视图是一个 Java 对象。 Android 使用 XML 来定义布局和其他项目的值。但 XML 不是一种 Java 对象。 @darms 是的,你是对的。我只是说该对象是从 XML 派生的。 findViewById() 允许 Android 运行时根据给定的 XML 参数填充正确的对象。【参考方案3】:方法findViewById
具有以下签名:
public View findViewById (int id)
这意味着它返回一个通用的非指定View
。
因为您的代码显然需要使用更具体的(在类层次结构的意义上)TextView
,所以它类型转换到TextView
,方法是在@返回的值之前添加(TextView)
987654328@.
虽然这是一种常见的做法,但它有点危险,因为它假设findViewById
返回的值在这种情况下是TextView
类型。如果不是,你会得到一个运行时异常ClassCastException
【讨论】:
以上是关于java中的“x =(某物)”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章