投射到 T 会引发未经检查的 lint

Casting to T raises unchecked lint

对于以下片段:

public class DriverRequestsColumnFragment<T extends BaseColumnPagerAdapter> {    
    private T adapter = (T) new RequestsColumnNowAdapter();   
}

其中:

public class RequestsColumnNowAdapter extends BaseColumnPagerAdapter {

}

Android Studio(可能还有 Intellij IDEA)引发了一个 "unchecked" lint。 我总是可以用 @SuppressWarnings("unchecked") 来抑制它,但这是处理它的正确方法吗?

更新:

我想要一个 private BaseColumnPagerAdapter adapter; 扩展两个 classes。 (例如 A extends BaseColumnPagerAdapterB extends BaseColumnPagerAdapter)。

在 DriverRequestsColumnFragment 的构造函数中,我传递了一个布尔值,它创建了一个新的 AB 但这应该是 class 可用的,所以类似于:

public class DriverRequestsColumnFragment<T extends BaseColumnPagerAdapter> {
    private T adapter ;

    public DriverRequestsColumnFragment(boolean choose){
        if(choose)
            adapter = (T) new A();
        else
            adapter = (T) new B();
    }

}

从评论中移出:

没有任何强制 T extends RequestColumnNowAdapter 这就是为什么您会收到未经检查的强制转换警告。仅仅因为 T extends BaseColumnPagerAdapterRequestColumnNowAdapter extends BaseColumnPagerAdapter 并不意味着 T extends RequestColumnNowAdapter