我的Android应用程序中有以下代码:
String objclassname = getIntent().getExtras().getString("ObjClass");
Class<?> ObjClass = Class.forName(objclassname);
dbListView.setAdapter(new DbAdapter<ObjClass>(getApplicationContext(),ds,campos));
但是它给出了错误,因为ObjClass不是Type。
和
String objclassname = getIntent().getExtras().getString("ObjClass");
Class<?> ObjClass = Class.forName(objclassname);
dbListView.setAdapter(new DbAdapter<ObjClass.getClass()>(getApplicationContext(),ds,campos));
也给出错误。
我不能使用泛型:How can i pass a generic class as param to Intent constructor
如何将类型转换为类型?
ps .:编辑得更清楚
最佳答案
您可以尝试这样的事情
String objclassname = getIntent().getExtras().getString("ObjClass");
Class<T> ObjClass = (Class<T>) Class.forName(objclassname);
dbListView.setAdapter(new DbAdapter<T>(getApplicationContext(),ds,campos));
但是您需要对方法进行参数化,例如
public <T> void doSomething (String className)