gpt4 book ai didi

java - 创建静态嵌套类的实例

转载 作者:行者123 更新时间:2023-12-02 06:33:10 26 4
gpt4 key购买 nike

我相信每当您创建静态嵌套类的实例时,它应该类似于:

Outerclass.StaticNestedClass myObject = new Outerclass.StaticNestedClass();

下面的代码(我省略了一些我认为与此处无关的代码)不使用封闭的类名。 GenerationData 是 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() 方法创建了一个 GenerationData 类型的对象,上面的 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);
}
}

最佳答案

因为您可以导入 xyz.ObjectBuilder.GenerateData 并随后在类中使用GenerateData

关于java - 创建静态嵌套类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19896132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com