簡體   English   中英

獲取ENUM值的方法

[英]Getter for ENUM values

我正在嘗試從一個枚舉中獲取一個變量或一個枚舉(我不確定該怎么稱呼它)。

所以這是我的枚舉。

public enum fruits {

//ID 0
banana(0,250, 150f, 400f, "Assassin"),
//ID 1
apple(1, 300f, 200f, 600f, "Fighter");





private float atk, def, hp;
private final String Style;
private int ID;


Ship(int id,  float attack, float defence, float health, String fightStyle) {
    atk = attack;
    def = defence;
    hp = health;
    Style = fightStyle;
    ID = id;

}

public String getLore() {
    return Lore;
}

public float getAtk() {
    return atk;
}

public float getPen() {
    return pen;
}

public float getDef() {
    return def;
}

public float getHp() {
    return hp;
}

public String getStyle() {
    return Style;
}

public int getID() {
    return ID;
}

因此,在此類中,我嘗試使用枚舉創建具有某些枚舉統計信息的播放器。 假設我是一名球員,而他是一名香蕉,他將擁有香蕉統計數據並能夠升級。

這是我嘗試執行的操作。

public class Player implements BaseEntity{

Fruitfruit;

//STATS
float atk;
float def;
float hp;


public Player(Fruitfruit) {
    this.fruit = fruit;
    atk = fruit.getAtk();
    def = fruit.getDef();
    hp = fruit.getHp();


}

@Override
public float getHP() {
    return hp;
}

@Override
public float getDef() {
    return def;
}

@Override
public float getAtk() {
    return atk;
}

@Override
public float getPen() {
    return pen;
}

@Override
public int getFruit() {
    return fruit.getID();
}

@Override
public String getFruitType() {
    return fruit.getStyle();
}



@Override
public void setFruit() {
    // TODO Auto-generated method stub

}

我希望玩家擁有香蕉統計數據並能夠升級這些統計數據。 我也希望玩家有一定的成果。 假設您從香蕉升級到蘋果,您的統計數據等於蘋果。

要引用一個Enum值,只需使用:

Fruits.BANANA

例如,您可以使用以下行實例化Player

final Player player = new Player(Fruits.BANANA);

你可以做這樣的事情。

播放機

public Fruit getFruit() {
    return fruit;
}

public void upgradePlayer(Fruit fruit) {
    this.fruit = fruit;
    atk = fruit.getAtk();
    def = fruit.getDef();
    hp = fruit.getHp();
}

升級播放器的示例實現

if (!player.getFruit().equals(Fruit.apple)) {
    player.upgradePlayer(Fruit.apple);
}

而且,如果您在某個時候厭倦了使用枚舉,請考慮一下整數常量:

public static final int FRUIT_BANANA = 0;
public static final int FRUIT_APPLE = 1;

private int fruit = FRUIT_BANANA;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM