相关疑难解决方法(0)

为什么我不能在案例标签中获得Enum常量引用?

为什么在将case语句更改为时,以下代码无法编译

case ENUM1: doSomeStuff();
Run Code Online (Sandbox Code Playgroud)

作品?

public enum EnumType
{
    ENUM1, ENUM2, ENUM3;

    void doSomeStuff()
    {
        switch(this)
        {
        case EnumType.ENUM1: doSomeStuff();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java enums

41
推荐指数
3
解决办法
3万
查看次数

编译错误 - 使用枚举切换

可能重复:
为什么我不能在案例标签中获得枚举常量引用?

嗨,有人知道为什么当我切换Enum时,案例应该是不合格的Enum值吗?

例:

switch(var) {

case Enum.FIRST:

break;

}
Run Code Online (Sandbox Code Playgroud)

是非法的

但:

switch(var) {

case FIRST:

break;

}
Run Code Online (Sandbox Code Playgroud)

是合法的.

我知道var是特定类型(Enum),但是如果我使用Enum值的完全限定名称,编译器会关心它?

java compiler-construction enums

14
推荐指数
2
解决办法
6463
查看次数

整数和字符串比较之间的优化有什么区别吗?

我正在尝试制作一个游戏,并且我有一个 Selection 类,其中包含一个名为 str 的字符串。我每 17 毫秒将以下代码应用于我的选择对象。

if(s.Str == "Upgrade") {
            
}else if(s.Str == "Siege") {
        
}else if(s.Str == "Recruit") {
            
}
Run Code Online (Sandbox Code Playgroud)

换句话说,这些选择对象会根据它们的类型(升级、攻城等...)做不同的工作。我在别处使用 str 变量。我的问题是:
如果我在第一次创建对象时将类型分配给一个整数,它会更优化吗?

if(s.type == 1) {
                
}else if(s.type == 2) {
            
}else if(s.type == 3) {
            
}
Run Code Online (Sandbox Code Playgroud)

这会让我编写额外的代码行(因为我第一次创建时必须按类型分隔对象)并使代码更难理解,但是比较整数而不是比较字符串会有区别吗?

java

2
推荐指数
1
解决办法
78
查看次数

标签 统计

java ×3

enums ×2

compiler-construction ×1