Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓头?如何创建在整个项目中可见的枚举?_Android_Enums - Fatal编程技术网

Android 安卓头?如何创建在整个项目中可见的枚举?

Android 安卓头?如何创建在整个项目中可见的枚举?,android,enums,Android,Enums,我正在寻找一种方法来创建一个“header”或类似的东西来指定一些变量,如: 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 =

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

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...
}
有什么好办法吗? 我现在正在创建一个小游戏,希望所有的文件都整洁有序,以便在将来我的项目变得更大时更容易管理

Thx提前

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);

在java中,不能以这种方式将值分配给枚举

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

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...
}
如果只想先使用不带类名的字段,则应将类作为静态导入:

import static test.Misc.*;

....

if (effect == EFFECT_DAMAGE ) {

扩展
应用程序
并将枚举放入其中。我可以知道为什么我的答案使用枚举你希望不满足你?你的代码很好。我先用了它,但后来我想在一个开关中使用代码,而你的代码我遇到了一个问题,它是一个糟糕的类型和诸如此类的东西,我切换到sergiomse answer,它也工作得很好+它在开关中工作。