从泛型类型获取类对象

时间:2013-03-15 09:47:08

标签: java android generics reflection

我想通过删除无用的类来简化项目。无用的课程我的意思是:

public class MainPage extends TileGridFragment<MainModel> {}

此类的整个逻辑由TileGridFragment实现,数据由MainModel提供,由于单例类,可以访问该实例。

我想将此类的实例推迟到以后的时间,所以我只需将MainPage.class传递给我的方法。

由于MainPage相当于TileGridFragment<MainModel>,我想删除此类,而是使用类似TileGridFragment<MainModel>.class的内容。

但这不起作用,我不在理想中。

我也尝试了Class.forName,但它引发了ClassNotFoundException

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

如果MainPage的实施实际上是{},则只需传递TileGridFragment.class。实际类型参数与运行时无关,因为它们被擦除删除。

此外,由于删除,您可以将新的TileGridFragment(原始类型,TitleGridFragment.class.newInstance()的结果)转换为TitleGridFragment<MainModel>,并且不会产生附带损害(除了来自编译器的一点警告之外,可以被压制)。

答案 1 :(得分:0)

你真的不能,你可能从反思中得到一些快乐,但我不确定你到底想要做什么。

试试这里: Get generic type of class at runtime