我上课" 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);
答案 0 :(得分:2)
您可以尝试将第二个参数投射到Fragment
吗?因为在您的示例中,您将Object
作为第二个参数传递:
fTrans.replace(FragmentPlace, (Fragment) clazz);