Java 为什么我会得到警告:类是原始类型。泛型类型类的引用<;T>;是否应该参数化;?

Java 为什么我会得到警告:类是原始类型。泛型类型类的引用<;T>;是否应该参数化;?,java,android,Java,Android,我在我的列表活动中收到警告。我收到的警告如下所示 类是原始类型。对泛型类型类的引用应该是 参数化 这并没有造成任何问题,但我想知道为什么我会收到这个警告,以及如何抑制它。请参阅写在星号内的行 public class Menu extends ListActivity { String classes[]={"Second","example1","example2","example3","example4"}; @Override protected void

我在我的
列表活动中收到警告。我收到的警告如下所示

  • 类是原始类型。对泛型类型类的引用应该是
    参数化
这并没有造成任何问题,但我想知道为什么我会收到这个警告,以及如何抑制它。请参阅写在星号内的行

public class Menu extends ListActivity {

    String classes[]={"Second","example1","example2","example3","example4"}; 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setListAdapter(new ArrayAdapter<String>(Menu.this,android.R.layout.simple_list_item_1,classes));
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);
        String cheese=classes[position];
        try{
        **Class ourclass= Class.forName("com.app1."+cheese);**
        Intent ourintent= new Intent(Menu.this,ourclass);
        startActivity(ourintent);
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }
    }
}
公共类菜单扩展ListActivity{
字符串类[]={“Second”、“example1”、“example2”、“example3”、“example4”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setListAdapter(新的ArrayAdapter(Menu.this,android.R.layout.simple_list_item_1,classes));
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
//TODO自动生成的方法存根
super.onListItemClick(左、右、位置、id);
字符串=类[位置];
试一试{
**Class-ourclass=Class.forName(“com.app1.+cheese”)**
Intent-ourintent=新的Intent(Menu.this,ourclass);
星触觉(ourintent);
}catch(classnotfounde异常){
e、 printStackTrace();
}
}
}

您可以使用
@SuppressWarnings(“rawtypes”,“unchecked”)
。您还可以生成代码

Class<?> ourclass= Class.forName("com.app1."+cheese);
Class-ourclass=Class.forName(“com.app1.+cheese”);

为了摆脱警告。现在,您不必使用
@SuppressWarnings(“rawtypes”)
。编译器希望所有泛型类型都被参数化

类是泛型的,如果您不关心警告,您有两个选择使用
@SuppressWarnings(“rawtypes”)
或我的首选项使用如下的
(即a)类

Class<?> ourclass = Class.forName("com.app1."+cheese);
Class-ourclass=Class.forName(“com.app1.+cheese”);
要忽略警告“类是原始类型…”,请在eclipse*中执行以下操作:

  • 单击窗口首选项Java编译器错误/警告
  • 单击“通用类型”
  • 为“原始类型的使用”选择“忽略”
  • 单击应用
  • 单击“确定”
  • 保存并关闭EclipseIDE
  • 当您重新打开eclipse时,这些特定的警告将不再列出


    *对于这个示例解决方案,我正在使用面向Java开发人员的EclipseIDE-Version:Mars.2发行版(4.5.2)

    有人能告诉我这个警告的原因吗?是的。因为is
    公共静态类forName(字符串className)的完整签名引发ClassNotFoundException