从泛型类型获取类对象



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

public class MainPage extends TileGridFragment<MainModel> {}

该类的整个逻辑由TileGridFragment实现,数据由MainModel提供,该实例通过singleton类进行访问。

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

由于MainPage等价于TileGridFragment<MainModel>,所以我想删除这个类,转而使用类似TileGridFragment<MainModel>.class的东西。

但这不起作用,我疯了。

我也尝试过Class.forName,但它抛出了ClassNotFoundException

知道吗?

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

此外,由于擦除,您可以将新的TileGridFragment(具有原始类型,作为TitleGridFragment.class.newInstance()的结果(强制转换为TitleGridFragment<MainModel>,并且不会有附带的损坏(除了编译器发出的一点警告之外,这是可以抑制的(。

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

请在此处尝试:在运行时获取类的泛型类型

相关内容

  • 没有找到相关文章

最新更新