簡體   English   中英

Java枚舉構造函數錯誤

[英]Java enum constructor error

我正在嘗試創建一個enum類,以便可以在for循環中使用每個值,一次獲得一個值。

這是我的enum聲明:

public enum SpaceStyle {

    public SpaceStyle(spaceStyle1, spaceStyle2, spaceStyle3);
    private String key;

    SpaceStyle(String key) {
        this.key = key;
    }

    public String getKey() {
        return key;
    }
}

這是我想要循環並使用每種方法的for循環。

for (SpaceStyle key : SpaceStyle.values()) {
    Map<String, String> contentMap = createContentMap(conf, versionNumber, data);
    createAndPopulateSpace(conf, versionNumber, contentMap, key.toString());
}

// The final method where the key of the enum will be used.
public StudioResponse createSpace(ProductInstance conf, VersionNumber \
            versionNumber, String spaceName, String spaceKey, String key) {
    return conf.buildRequest("/createspace.action")
        .setArg("name", spaceName)
        .setArg("key", spaceKey)
        .setArg("permissionSetter.registeredCanView", "true")
        .setArg("permissionSetter.registeredCanEdit", "true")
        .setArg("themeKey", "com.atlassian.studio.confluence" + key)
        .execute("Creating space '" + spaceName + "'");
    }
}

那將無法編譯,因為您不能在枚舉中包含公共構造函數。

這將編譯:

public enum SpaceStyle {
    spaceStyle1("some-key"),
    spaceStyle2("some-other-key"),
    spaceStyle3("foo-bar");

    private String key;

    private SpaceStyle(String key) {
        this.key = key;
    }

    public String getKey() {
        return key;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM