gpt4 book ai didi

android - 转换到 Button 是多余的 - 为什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:01:24 25 4
gpt4 key购买 nike

我刚刚从编译器中看到这条有趣的消息,我不知道为什么会这样。情况是这样的

示例 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 返回的对象初始化另一个对象,为什么不需要转换。

最佳答案

你得到这个的原因是因为 findViewById 返回 View 并且这个类已经定义了方法 setOnClickListener。这意味着即使不进行转换,您也可以设置监听器。因此,您的类型转换是多余的。

关于android - 转换到 Button 是多余的 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9514579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com