日期:2014-05-20  浏览次数:20784 次

子类转成父类的问题,,和接口有关,我也不知道怎么描述了
FragmentsNeedToInstance 是我定义的一个接口,
OnBackKeyClickedEvent()是这个接口里面的一个方法,
fMgr.findFragmentByTag(tagOfTheFragmentShowing)可以返回一个类A的对象,A实现了我上面定义的那个接口,,而且我用
fMgr.findFragmentByTag(tagOfTheFragmentShowing) instanceof A

判断的结果也是true。

下面是我的问题。。

我按下面的方式使用的时候,eclipse没有报错。
FragmentsNeedToInstance temp = (FragmentsNeedToInstance) fMgr.findFragmentByTag(tagOfTheFragmentShowing);
temp.OnBackKeyClickedEvent();


但是如果我把它写成一句,它就说FragmentsNeedToInstance cannot be resolved to a variable.
(FragmentsNeedToInstance) fMgr.findFragmentByTag(tagOfTheFragmentShowing).OnBackKeyClickedEvent();


由于某种原因,我并不能按照第一种方式来写,因为使用临时变量后它已经不是原来的那个变量了,它们指向的是不同的两个地址,,调用这个接口也就没有意义了。。

所以我想问这个问题该怎么解决,,为什么我用第二种的方式他就会报错呢?
------解决方案--------------------
不是很清楚楼主的需求,你类A都实现了那个接口直接fMgr.findFragmentByTag(tagOfTheFragmentShowing).OnBackKeyClickedEvent();这样写就行了何必要再转成接口