Android标题?如何在整个项目中创建可见的枚举?

时间:2014-09-01 13:28:56

标签: android enums

我正在寻找一种方法来创建一个"标题"或类似的东西来指定一些变量,如:

enum Misc
{
    double EFFECT_DAMAGE = Math.pow(2,0);
    double EFFECT_ABSORB = Math.pow(2,1);
    double EFFECT_HEAL   = Math.pow(2,2);
    int SPELL_FIREBALL   = 51673;
}

在我希望能写的每个.java文件中:

double effect = 1;
if (effect == EFFECT)
{
    ...some code...
}

有一个很好的方法吗? 我现在正在创建一个迷你游戏,并且希望一旦它变得更大,就能让所有文件变得干净整洁,以便将来管理我的项目。

提前谢谢。

2 个答案:

答案 0 :(得分:2)

public enum Misc 
{
    EFFECT_DAMAGE(0), // 2^0
    EFFECT_ABSORB(1), // 2^1
    FIREBALL(245151);

    private double value;

    private Misc(double d){
        value = d;
    }

    public String toString(){
        return String.valueOf(value);
    }
}

像这样访问:

System.out.println("Fireball damage:" + Misc.FIREBALL);

答案 1 :(得分:1)

您不能以这种方式将值赋给java中的枚举。

相反,您应该使用带有公共静态最终变量的公共类来使它们成为常量。

public class Misc {
    public static final double EFFECT_DAMAGE = Math.pow(2,0);
    public static final double EFFECT_ABSORB = Math.pow(2,1);
    public static final double EFFECT_HEAL   = Math.pow(2,2);
    public static final int SPELL_FIREBALL   = 51673;
}

所以你可以在你的代码中使用

if (effect == Misc.EFFECT_DAMAGE )
{
    ...some code...
}

如果您只想使用没有类名的字段,则应将该类导入为static:

import static test.Misc.*;

....

if (effect == EFFECT_DAMAGE ) {