小编Heb*_*rfa的帖子

我如何将泛型类作为param传递给Intent构造函数

我在我的Android应用程序中有这个通用活动

public class NavegadorActivity<T> extends Activity {

    ....
...
}
Run Code Online (Sandbox Code Playgroud)

我试着把它称之为下面

Intent intent = new Intent(v.getContext(), NavegadorActivity<Clientes>.class);
Run Code Online (Sandbox Code Playgroud)

但是,Intent构造函数不接受通用类作为param.然后我尝试了这段代码

Class<NavegadorActivity<Clientes>> NavClientes =  NavegadorActivity.class;

Intent intent = new Intent(v.getContext(), NavClientes.class);
Run Code Online (Sandbox Code Playgroud)

哪个也行不通.

也不是这个

Class<NavegadorActivity<Clientes>> NavClientes =  NavegadorActivity<Clientes>.class;

Intent intent = new Intent(v.getContext(), NavClientes.class);
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何将泛型类作为param传递给Intent构造函数?

谢谢

java generics android

8
推荐指数
1
解决办法
1863
查看次数

Java中的奇怪转换错误

我有这些课程:

public class A <T>{
}

public interface I {    
}

public class X implements I {
}

public class B extends A<X>{
}
Run Code Online (Sandbox Code Playgroud)

在我的代码中如果我这样做我得到错误:

A<I> myobj = (A<I>) new B();
Run Code Online (Sandbox Code Playgroud)

肯定是:

A<X> myobj = (A<X>) new B();
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做是好的,并且效果很好:

A<I> myobj = null;
myobj  = (A<I>) Class.forName("B").newInstance();
Run Code Online (Sandbox Code Playgroud)

在最后一种情况下,我访问B的所有方法,并且工作得很好.

我需要将myobj声明为A,因为我只保证泛型obj的接口而不是具体的类.

有谁知道为什么我的第一个案例不起作用?

我想实现第一个应该是最优雅的.

java generics

1
推荐指数
1
解决办法
145
查看次数

标签 统计

generics ×2

java ×2

android ×1