【问题标题】: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 语言的基础知识。
  • 将一种类型转换为另一种类型

标签: java android syntax


【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-24
      • 2020-03-18
      • 2021-08-02
      • 2015-12-30
      • 2020-10-02
      • 2011-05-27
      • 2018-05-03
      • 1970-01-01
      相关资源
      最近更新 更多