我想问一下,如果有写下面的代码更优雅的方式:爪哇 - 多态性与集合属性
public class MTree {
class MTreeObject {
double[] vector;
}
class RoutingObject extends MTreeObject {
double radius;
}
class LeafObject extends MTreeObject {
int id;
}
class Node {
LinkedList<MTreeObject> list;
}
class InnerNode extends Node {
LinkedList<RoutingObject> list;
}
class LeafNode extends Node {
LinkedList<LeafObject> list;
}
public static void main(String[] argv) {
MTreeObject object = new RoutingObject();
Node node = new InnerNode();
((InnerNode)node).list.add((RoutingObject)object);
}
}
的问题是,如果我有,例如:
class Result {
Node node;
}
然后在主叫
public static void main(String[] argv) {
Result result = new Result();
MTreeObject object = new RoutingObject();
result.node = new InnerNode();
result.((InnerNode)node).list.add((RoutingObject)object);
}
它不按我想要的方式工作。嗯,我也可以这样做:
newnode = result.node
((InnerNode)newnode).list.add((RoutingObject)object);
但后来我不得不太多变数,我更复杂的代码...
这是一个仿制药的工作。 – 2012-04-07 00:26:12
你的课堂设计是纠结的:将这些内部课程移到他们自己的文件 - 使他们成为顶级课程。然后使用泛型。 – Bohemian 2012-04-07 00:38:26