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 =(某物)”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

Java中的“同步”是啥意思? [复制]

Java中的花括号本身是啥意思?

`param:.+` 中的 ":.+" 是啥意思(java)?

java中的tmp_xxx是啥意思?

java中的POJO是啥意思?

Java中的Double到底是啥意思?