Java在没有警告的情况下使用特定类型转换泛型类

时间:2013-01-10 23:23:44

标签: java android generics casting

我有一个类ListFragment

 public class ListFragment<T> extends DialogFragment {

当我尝试将对象转换为特定类型的ListFragment时,String

ListFragment<String> lfst = (ListFragment<String>)getFragmentManager().findFragmentByTag("somePicker");

它给了我一个警告类型安全:从Fragment到ListFragment的未经检查的强制转换

要删除警告,我必须添加@SuppressWarnings("unchecked")

我需要ListFragment<String>的原因,因为我将调用一种取决于String使用的方法。

有没有办法在不使用抑制警告的情况下实现此目的。请注意,此代码正在编写以便在Android上使用。

2 个答案:

答案 0 :(得分:1)

总之,没有。 findFragmentByTag方法不知道它将返回ListFragment,而超类Fragment本身没有类型参数。

你可以做的最好就是像你一样压制警告。

答案 1 :(得分:-1)

这只是一个警告。运行它,测试它,如果一切顺利。别管它。你可以在应用程序中压制每一个警告。祝你好运