我相信,无论何时创建静态嵌套类的实例,它都应该是这样的:
Outerclass.StaticNestedClass myObject = new Outerclass.StaticNestedClass();下面的代码(我省略了一些我认为在这里不相关的代码)没有使用封闭的类名。GeneratedData是ObjectBuilder类的静态嵌套类。为什么我看不到:
ObjectBuilder.GeneratedData = ObjectBuilder.createMallet()取而代之的是:
GeneratedData generatedData = ObjectBuilder.createMallet();这是java文件...
public class Mallet {
public Mallet(float radius, float height, int numPointsAroundMallet) {
GeneratedData generatedData = ObjectBuilder.createMallet(new Point(0f,
0f, 0f), radius, height, numPointsAroundMallet);
// lots of code omitted
}
} 这里是定义静态嵌套类的类。正如您所看到的,方法createMallet()创建了一个GeneratedData类型的对象,上面的Mallet类使用该方法而不是构造函数。
class ObjectBuilder {
static interface DrawCommand {
void draw();
}
static class GeneratedData {
final float[] vertexData;
final List<DrawCommand> drawList;
GeneratedData(float[] vertexData, List<DrawCommand> drawList) {
this.vertexData = vertexData;
this.drawList = drawList;
}
}
static GeneratedData createMallet(
// lots of code omitted
return builder.build();
}
private final float[] vertexData;
private ObjectBuilder(int sizeInVertices) {
vertexData = new float[sizeInVertices * FLOATS_PER_VERTEX];
}
private GeneratedData build() {
return new GeneratedData(vertexData, drawList);
}
}发布于 2013-11-11 06:57:28
因为您可以在以后的类中使用import xyz.ObjectBuilder.GeneratedData和GeneratedData。
https://stackoverflow.com/questions/19896132
复制相似问题