首页 > 解决方案 > 无法为字段设置随机枚举

问题描述

public class Player {

    public String name;
    public boolean active;
    public boolean seeker;
    public Location randLocation;

    public Player(String name, boolean seeker) {
        this.name = name;
        this.seeker = seeker;
        //this.active= true;
        //this.randLocation=randLocation;
    }

    public String getName() {
        return name;
    }

    public boolean isActive() {
        return active;
    }

    public void setActive(boolean active) {
        this.active = active;
    }

    public boolean isSeeker() {
        return seeker;
    }

    public Location getrandLocation() {
        Random random = new Random();
        randLocation = (Location.values()[random.nextInt(Location.values().length)]);
        System.out.println(randLocation);
        return randLocation;
    }

    public void setRandLocation(Location randLocation) {
        this.randLocation = randLocation;
    }

    @Override
    public String toString() {
        return "Player [name=" + name + ", active=" + active + ", seeker=" + seeker + ", randLocation=" + randLocation
                + "]";
    }

    public static void main(String[] args) {
        Player p1 = new Player("p1", false);
        System.out.println(p1);
    }
}

其中 Location 是一组枚举的位置,例如 {BEDROOM, GARDEN, KITCHEN}.etc。当我创建一个播放器,然后打印出播放器时,randLocation 始终为空,我尝试更改构造函数但仍然无济于事。任何帮助都会很有用!谢谢你。

标签: javaclassrandomenumerated-types

解决方案


在构造函数中使用以下行:

this.randLocation=getrandLocation();

推荐阅读