将class.forName创建的类作为参数传递

时间:2017-12-26 17:17:11

标签: java android android-fragments

我上课" Q1"这扩展了Fragment。我使用class.forName创建它然后我需要将它作为参数传递给接收(int,Fragment)的方法,但是存在错误的第二类错误。我不能只是将对象转换为" Q1",因为 我将创建更多的课程,例如" Q2,Q3和#34;因此可以将未知类传递给此方法

Object clazz = Class.forName(fClass).newInstance(); //fClass is the class name
fTrans.replace(FragmentPlace, clazz);// Wrong second type

P.S如果我使用不是由class.forName创建的对象,这将完美地工作。 喜欢这个

Q1 clazz = new Q1();
 fTrans.replace(FragmentPlace, clazz);

1 个答案:

答案 0 :(得分:2)

您可以尝试将第二个参数投射到Fragment吗?因为在您的示例中,您将Object作为第二个参数传递:

fTrans.replace(FragmentPlace, (Fragment) clazz);