【发布时间】:2013-03-21 18:02:58
【问题描述】:
我的 android 应用程序中有这个通用活动
public class NavegadorActivity<T> extends Activity {
....
...
}
我正试图这样称呼它
Intent intent = new Intent(v.getContext(), NavegadorActivity<Clientes>.class);
但是,Intent 构造函数不接受泛型类作为参数。然后我尝试了这段代码
Class<NavegadorActivity<Clientes>> NavClientes = NavegadorActivity.class;
Intent intent = new Intent(v.getContext(), NavClientes.class);
这也不起作用。
也不是这个
Class<NavegadorActivity<Clientes>> NavClientes = NavegadorActivity<Clientes>.class;
Intent intent = new Intent(v.getContext(), NavClientes.class);
任何人都知道如何将泛型类作为参数传递给 Intent 构造函数?
谢谢
【问题讨论】:
-
出于好奇,您为什么使用通用活动?
-
这与
Intent构造函数无关;问题是您的语法错误。NavegadorActivity<Clientes>.class不是有效语法(因为您不能将泛型与.class结合使用),NavClientes.class也不是(因为NavClientes是变量名,而不是类型名)。 -
(您尝试执行的操作也存在概念问题。如果
stringList是ArrayList<String>和intList是ArrayList<Integer>,那么stringList.getClass()和intList.getClass()将是Class的相同 实例。您根本不能使用Class传递泛型类型信息,因为该信息在运行时会被删除。) -
@Mr.Me 我正在尝试在 NavegadorActivity 中创建一个显示 T 对象的数据网格