2011-10-12 124 views
1

我正在尝试创建一个enum类,以便我可以在for循环中使用每个值,每次获取一个值。Java枚举构造函数错误

这是我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 + "'"); 
    } 
} 
+0

很难知道你是否做到了“正常”,而不知道它是什么,你想要它做的。 –

+1

问题是什么? –

+0

我只想将每个枚举值传递给creationpace方法。所以我写了一个for循环来为每个枚举值操作该方法。 – user979587

回答

6

这将无法编译,因为您不能在枚举中有一个公共构造函数。

这将编译:

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; 
    } 
}