ENUM类的编译错误

时间:2014-02-13 09:39:17

标签: java

抱歉提出这样的基本问题。我正在尝试ENUM。下面是我的代码。我收到一些编译错误。知道问题在哪里。我想要SAMPLEMAIL,BULKUSERS,ALLUSERS应该是整数类型。

 public enum EmailSendingOption {

        SAMPLEMAIL, BULKUSERS, ALLUSERS;

        private int emailSendingOptionType;

        private EmailSendingOption(String optionType) {
            int value = Integer.parseInt(optionType.trim());
            emailSendingOptionType = value;
        }

        public int getEmailSendingOption() {
            return emailSendingOptionType;
        }

    }

感谢。

5 个答案:

答案 0 :(得分:3)

您已经定义了一个构造函数,但是您没有为每个枚举提供参数。

看起来您的构造函数也应该采用整数。保存每次都必须解析一个字符串。它也更安全。

e.g。

SAMPLEMAIL(10)

使用您的构造函数:

private int emailSendingOptionType;

private EmailSendingOption(int optionType) {
  this.emailSendingOptionType = optionType;
}

答案 1 :(得分:1)

你需要这样做:

public enum EmailSendingOption {

    SAMPLEMAIL("1"), BULKUSERS("2"), ALLUSERS("3");

    private int emailSendingOptionType;

    private EmailSendingOption(String optionType) {
        int value = Integer.parseInt(optionType.trim());
        emailSendingOptionType = value;
    }

    public int getEmailSendingOption() {
        return emailSendingOptionType;
    }

}

答案 2 :(得分:0)

因为您要为Enum

提供自定义构造函数
EmailSendingOption(String optionType)

您需要为每个枚举常量添加这些参数。

答案 3 :(得分:0)

将其更改为:

public enum EmailSendingOption 
  {

            SAMPLEMAIL("String"), BULKUSERS("String"), ALLUSERS("String");
    ...
  }

您根据需要将构造函数定义为String作为参数。 SAMPLEMAIL这是一个静态对象 EmailSendingOption。

答案 4 :(得分:0)

enum不是Java中的整数,它们是对象。没有理由将一个整数作为String传递给构造函数,因此可以将其解析为整数。如果你想要一个整数使用整数。

public enum EmailSendingOption {

    SAMPLEMAIL(1), BULKUSERS(2), ALLUSERS(101);

    private final int emailSendingOptionType;

    private EmailSendingOption(int emailSendingOptionType) {
        this.emailSendingOptionType = emailSendingOptionType;
    }

    public int getEmailSendingOption() {
        return emailSendingOptionType;
    }

}