【发布时间】:2011-10-27 12:17:23
【问题描述】:
我有一个层次结构,其中 Square、Triangle 和 Circle 都从 Shape 延伸。我有一个工作方法:
public void someMethod() {
File file = new File("File_with_squares");
ThirdPartyClass foo = new ThirdPartyClass();
Square[] squares = foo.someMajicMethod(Square[].class,file);
for (Square square: squares)
square.draw();
}
现在我想让这个方法通用,以便它可以接受任何形状。我希望能够将其称为someMethod(Triangle.class,new File("File_with_triangles") 或someMethod(Circle.class, new File("File_with_circles")。我正在尝试这样:
public void someMethod(Class<? extends Shape> type, File shapeFile) {
ThirdPartyClass foo = new ThirdPartyClass();
#### What goes here??? ####
for (Shape shape: shapes)
shape.draw();
}
#### 应该有什么?这里有什么? #### ???
【问题讨论】:
-
答案几乎完全取决于
ThirdPartyClass和someMajicMethod是什么