findViewById 的转换结果是多余的



我是Android的新手,我正在完成一些使用各种视图的练习。一个这样的例子是:

    TextView messageView = (TextView) findViewById(R.id.message);

我的问题是:转换文本视图有什么好处?我的 IDE 告诉我,强制转换方法是多余的。是否有任何用例我想以这种方式进行投射?

在 API 级别 26 之前,该方法findViewById返回View类的引用。所以你需要投掷它。

//old signature
public View findViewById(int id){
    //
}

但是从 API 级别 26 开始,它已经更新,它使用模板返回View的子类,以便您可以在不强制转换的情况下分配返回的引用。

//new signature
public <T extends View > T findViewById(int id){
    //
}

您引用的示例在构建项目时使用了较旧的 API 级别,因此您可以在那里看到转换。它以前是强制性的,但现在没有必要了。所以你得到警告。

相关内容

最新更新