Class ActivityItems 工作正常,但我收到警告“Type Class 是原始类型。对通用类型 Class 的引用应该参数化”。如何解决?
这是我的代码:
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();
}
}
}
最佳答案
我认为这可能只是改变这一点:
Class activityItems = Class.forName("com.arbaz.hk." + item);
至:
Class<?> activityItems = Class.forName("com.arbaz.hk." + item);
这样你仍然不会说你知道T
是什么。在Class<T>
是,但您证明您至少知道它是泛型类型,因此编译器不会像其他情况那样从签名等中删除泛型的所有痕迹。
关于java - Type Class 是原始类型。对泛型类型 Class<T> 的引用应该参数化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23790278/