简体   繁体   English

将枚举传递给Java中的构造函数

[英]Passing a enum into a constructor in Java

I am learning java. 我正在学习Java。 I would like to have a enum as a parameter in my constructor. 我想在我的构造函数中有一个枚举作为参数。 But I am getting an error (I have my enum in a separate class that is public and named AvailabilityState {AVAILABLE,ORDERED,REMOVED } 但是我遇到了一个错误(我的枚举存在于一个单独的类中,该类是公共的,并命名为AvailabilityState {AVAILABLE,ORDERED,REMOVED}

public class Facultymember extends User {
private  int MAX_GENERALBOOKS = 5;
private  int MAX_AUDIOBOOKS = 2;
private AvailabilityState aStatus;

public Facultymember(int genbook, int audbook,AvailabilityState aStatus ){
        this.MAX_GENERALBOOKS=genbook;
        this.MAX_AUDIOBOOKS=audbook;
                this.aStatus  = aStatus;
    }



@Override
    public String toString() {
        return "Facultymember {" + "MAX_GENERALBOOKS=" + MAX_GENERALBOOKS+ ",  MAX_AUDIOBOOKS =" +  MAX_AUDIOBOOKS  + "AvailabilityState," + aStatus +  '}';
    }

}**

If you require a parameter of type AvailabilityState, you should provide it, like so: 如果需要类型为AvailabilityState的参数,则应提供它,如下所示:

User availableFaculty = new Facultymember(5,2, AvailabilityState.AVAILABLE);
User orderedFaculty = new Facultymember(5,2, AvailabilityState.ORDERED);
User removedFaculty = new Facultymember(5,2, AvailabilityState.REMOVED);

Alternatively, define another constructor with default availability state: 或者,定义另一个具有默认可用性状态的构造函数:

public Facultymember(int genbook, int audbook) {
    // assuming availability by default
    this(genbook, audbook, AvailabilityState.AVAILABLE);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM