Type Class是原始类型。对泛型类<t>的引用应该参数化</t>

时间:2014-05-21 17:39:44

标签: java android class android-activity

类activityItems工作正常,但我收到警告&#34; Type Class是原始类型。对泛型类的引用应该参数化&#34;。如何解决?

这是我的代码:

public class MainActivity extends ListActivity {

    String classes[] = { "AccountActivity", "CountsActivity", "" };
    String listItems[] = { "Accounts", "Counts", "temp" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        View layout = findViewById(R.id.container);
        Drawable background = layout.getBackground();
        background.setAlpha(110);

        setListAdapter(new ArrayAdapter<String>(this, 
                android.R.layout.simple_list_item_1, listItems));

    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        String item = classes[position];
        try {
            Class activityItems = Class.forName("com.arbaz.hk." + item);
            Intent intent = new Intent(this, activityItems);
            startActivity(intent);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:3)

我认为可能只是改变了这种情况:

Class activityItems = Class.forName("com.arbaz.hk." + item);

为:

Class<?> activityItems = Class.forName("com.arbaz.hk." + item);

这样你仍然没有说你知道T中的Class<T>是什么,但是你证明你至少知道它一般类型,因此编译器不会从签名等中删除所有泛型的痕迹,否则就会如此。