这是我的第一个问题所以如果出现问题,请不要生我的气。
问题在于: 我们有类Node。它是类Item的基类。所以基本上:
public class Item extends Node
好的,一切都很好。但是我们也让class让它称之为NodeFactory,它包含静态方法loadNodeAssets,返回Node作为结果。
public static Node loadNodeAssets (String path)
在我使用它的库中,只能初始化Node类并将资源加载到它中。但主要问题是我需要获取Item类实例但不需要Node。我怎么能完成它?
Item f = (Item)NodeFacory.loadNodeAssets ("...")
不工作,因为返回类具有类型Node而不是Item。 基本上我需要构造Fish类并初始化Fish类扩展的Node类中的继承字段。 对不起我的英语不好。希望得到你的帮助。谢谢!
答案 0 :(得分:2)
首先你应该找出你实际上回来的课程:
Node n = NodeFacory.loadNodeAssets ("...")
System.out.println(n.getClass());
如果结果是Node
,那么获得Item
的唯一方法就是手动构建它:
Node n = NodeFacory.loadNodeAssets ("...")
Item i = new Item();
i.setAAA(n.getAAA());
i.setBBB(n.getBBB());
如果图书馆根本不允许你构建Item
,那么只有两种可能:
Item
,但实际上只需Node
。