[英]Getter for ENUM values
I'm trying to get a variable, or an enum out of an enum(I'm not sure what to call it). 我正在尝试从一个枚举中获取一个变量或一个枚举(我不确定该怎么称呼它)。
So this is my enum. 所以这是我的枚举。
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;
}
So in this class I'm trying to use the enum to create a player with certain enum stats. 因此,在此类中,我尝试使用枚举创建具有某些枚举统计信息的播放器。 Let's say I make a player and he's aa banana, he would have banana stats and be able to upgrade them. 假设我是一名球员,而他是一名香蕉,他将拥有香蕉统计数据并能够升级。
Here is where I try to do that. 这是我尝试执行的操作。
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
}
I want the player to have banana stats and be able to level up those stats. 我希望玩家拥有香蕉统计数据并能够升级这些统计数据。 I also want the player to have a certain fruit. 我也希望玩家有一定的成果。 Let's say you upgrade from banana to apple, your stats are equal to the apple. 假设您从香蕉升级到苹果,您的统计数据等于苹果。
To refer to an Enum
value, simply use: 要引用一个Enum
值,只需使用:
Fruits.BANANA
For example, you can instantiate a Player
using the following line: 例如,您可以使用以下行实例化Player
:
final Player player = new Player(Fruits.BANANA);
You can do something like this. 你可以做这样的事情。
Player 播放机
public Fruit getFruit() {
return fruit;
}
public void upgradePlayer(Fruit fruit) {
this.fruit = fruit;
atk = fruit.getAtk();
def = fruit.getDef();
hp = fruit.getHp();
}
Sample implementation of upgrade player 升级播放器的示例实现
if (!player.getFruit().equals(Fruit.apple)) {
player.upgradePlayer(Fruit.apple);
}
And if you at some point get tired of using enums, concider integer constants: 而且,如果您在某个时候厌倦了使用枚举,请考虑一下整数常量:
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.