Java 如何将泛型类作为param传递给Intent构造函数
我的android应用程序中有这种通用活动Java 如何将泛型类作为param传递给Intent构造函数,java,android,generics,Java,Android,Generics,我的android应用程序中有这种通用活动 public class NavegadorActivity<T> extends Activity { .... ... } 公共类NavegadorActivity扩展活动{ .... ... } 我试着这样称呼它 Intent intent = new Intent(v.getContext(), NavegadorActivity<Clientes>.class); Intent Intent=newin
public class NavegadorActivity<T> extends Activity {
....
...
}
公共类NavegadorActivity扩展活动{
....
...
}
我试着这样称呼它
Intent intent = new Intent(v.getContext(), NavegadorActivity<Clientes>.class);
Intent Intent=newintent(v.getContext(),NavegadorActivity.class);
但是,Intent构造函数不接受泛型类作为param。然后我尝试了这个代码
Class<NavegadorActivity<Clientes>> NavClientes = NavegadorActivity.class;
Intent intent = new Intent(v.getContext(), NavClientes.class);
Class NavClientes=NavegadorActivity.Class;
Intent Intent=新的Intent(v.getContext(),NavClientes.class);
这也不行
也不是这个
Class<NavegadorActivity<Clientes>> NavClientes = NavegadorActivity<Clientes>.class;
Intent intent = new Intent(v.getContext(), NavClientes.class);
Class NavClientes=NavegadorActivity.Class;
Intent Intent=新的Intent(v.getContext(),NavClientes.class);
有人知道如何将泛型类作为param传递给Intent构造函数吗
谢谢你,你怎么了
Intent intent = new Intent(v.getContext(), NavegadorActivity.class);
我不相信android Intent系统支持
通用的活动,你不应该自己创建一个活动对象。我建议向活动中添加一个表示通用功能的内部类,并通过
intent.putExtraString("class", yourClass.getName());
并通过
Class<?> myGeneric = Class.forName(intent.getStringExtra("class", "java.Object");
Class myGeneric=Class.forName(intent.getStringExtra(“Class”、“java.Object”);
出于好奇,您为什么要使用泛型活动?这与意图
构造函数没有任何关系;问题是您的语法是错误的。NavegadorActivity.class
不是有效的语法(因为您不能将泛型与.class
组合),而NavClientes.class
也不是有效的语法(因为NavClients
是一个变量名,而不是类型名)。(您尝试执行的操作在概念上也存在问题。如果stringList
是一个ArrayList
而intList
是一个ArrayList
,那么stringList.getClass()
和intList.getClass()
将与类
的实例相同。您不能使用类
传递泛型类型信息,因为该信息在运行时会被擦除。)@Me先生,我正在尝试在NavegadorActivity中创建一个datagrid,它显示NavegadorActivity的构造函数将如何处理T类的对象?没有必要显示构造函数,因为它是一个泛型类,需要知道什么是类T@Heberfa:您询问如何传递表示NavegadorActivity类
对象ode>到Intent
构造函数。在运行时只有一个NavegadorActivity
类对象,可以使用NavegadorActivity.class
访问它。这个答案回答了您的问题。NavegadorActivity的构造函数与问题无关。在NavegadorActivity中,我还需要一个问题声明另一个泛型对象DbAdapter,但myGeneric是一个类,我无法再次将其转换为类型。