对于以下代码 fragment :
public class DriverRequestsColumnFragment<T extends BaseColumnPagerAdapter> {
private T adapter = (T) new RequestsColumnNowAdapter();
}
地点:
public class RequestsColumnNowAdapter extends BaseColumnPagerAdapter {
}
Android Studio(可能还有 Intellij IDEA)引发“未经检查”的 lint。
我总是可以使用 @SuppressWarnings("unchecked")
来抑制它,但这是处理它的正确方法吗?
更新:
我想要一个 private BaseColumnPagerAdapter 适配器;
它可以通过两个类进行扩展。 (例如,A 扩展 BaseColumnPagerAdapter
和 B 扩展 BaseColumnPagerAdapter
)。
在 DriverRequestsColumnFragment 的构造函数中,我传递一个 boolean 值,它创建一个新的 A
或 B
但这应该是可用的类,如下所示:
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 BaseColumnPagerAdapter
和 RequestColumnNowAdapter extends BaseColumnPagerAdapter
并不意味着 T extends RequestColumnNowAdapter
关于java - 转换为 T 会引发未经检查的 lint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27796839/