Android 安卓头?如何创建在整个项目中可见的枚举?
我正在寻找一种方法来创建一个“header”或类似的东西来指定一些变量,如: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 =
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,它也工作得很好+它在开关中工作。