如何在类中使用枚举时创建对象?

Met*_*cer -1 java class object

我之前将变量availability存储在 double 中,该变量存在于名为wrapper如下的类中 -

public final class Wrapper {

private final double availability;


Wrapper(){
this.availability = 2;
}


public Wrapper(final double availability){
this.availability = availability;
}

public double availability (){  // Need a confirmation if this is a getter ?
return this.availability;
}
}
Run Code Online (Sandbox Code Playgroud)

现在,我必须通过将可用性作为对象来稍微改变一下场景。原因是 -现在我们需要每个区域的可用性,与上面的情况不同。此外,我们现在需要在wrapper类中使用该可用性对象。

这就是我想做的 -

public final class Availability {
public enum Region {
US,
UK,
EU;

private final double availability;

Region () {
this.availability = 2;
}

Region (double availability) {
this.availability = availability ;
}
}
Run Code Online (Sandbox Code Playgroud)

我应该在包装类中使用可用性对象,因为包装类对象正在其他以前用来接受参数(可用性)的地方使用。现在我不想破坏这个工作流程。Availability另外,当我使用枚举时,我对为类创建对象有点困惑。谁能帮我解决这个问题吗?提前致谢!

cri*_*007 6

根据我的理解,你不需要class Availability

将 file定义Region.java为具有public enum Region,然后您可以拥有该构造函数并添加缺少的吸气剂。

public enum Region {
    US(2),
    UK(2),
    EU(2);

    private final double availability;

    Region (double availability) {
        this.availability = availability ;
    }

    public getAvailability() {
        return this.availability;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后Wrapper可以接受Region实例,并访问.getAvailability()它的方法。

public final class Wrapper {

    private final Region region;
    
    public Wrapper(Region region){
        this.region = region;
    }
    
    public double getAvailability() {
        return this.region.getAvailability();
    }
Run Code Online (Sandbox Code Playgroud)

例如System.out.print(new Wrapper(Region.US).getAvailability());