java - 静态整数的 Switch 语句错误

标签 java static switch-statement

为什么我在下面的 switch 语句中收到“} ”错误。我没有看到任何语法错误。 我在编译代码时没有收到错误。 Eclipse 在下面的指定位置指示错误。

输入 } 后出现此错误

- The static field KeyEvent.VK_XXXX should be accessed in a 
 static way
- case expressions must be constant expressions

switch(event.getKeyCode())
        {
        case event.VK_BACK_SLASH:
            backColor=but[27].getBackground();
            break;

        case event.VK_RIGHT:
            for(int i=0;i<but.length;i++)
            {
                if(" > ".equals(but[i].getText()))
                {
                    backColor=but[i].getBackground();
                    break;
                }
            }
            break; // error here
   }

当我按下该键时,出现以下错误

Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem: 
Syntax error, insert "}" to complete SwitchBlock

    at Keyboard$HandlerClass.keyPressed(Keyboard.java:242) // this is break statement


    at java.awt.Component.processKeyEvent(Unknown Source)
    at javax.swing.JComponent.processKeyEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)

问候

最佳答案

我在您的代码中看到的唯一问题如下(但这不是编译时/运行时错误),这很可能最终会成为错误:

but[i].getText() == " > " //this is called object identity check

这不是比较字符串的正确方法。使用 .equals 方法代替

" > ".equals(but[i].getText()) //this is object equality check

更新

The static field KeyEvent.VK_XXXX should be accessed in a static way

这意味着您应该将 event.VK_BACK_SLASH 更改为 KeyEvent.VK_BACK_SLASH,...

关于java - 静态整数的 Switch 语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13428543/

相关文章:

java - 第 2 部分 - 如何在缩放 JTextPane 时获得一致的呈现?

java - 使用小程序在客户端系统上写入文件

java - 静态和非静态

c - 如何在不调用声明它的函数的情况下修改局部静态变量?

C:在 switch 中定义多维数组

javascript - 谷歌应用程序脚本公式中的未知错误

无法弄清楚我的 switch 语法有什么问题

java - 降级 Eclipse ant 以在使用较旧的 JDK 库时进行编译 (Java 1.7 -> 1.6)

java - 在 Java 中使用枚举用动物对象填充动物园对象

c# - 考虑到性能, session 变量比静态变量更好?如果没有,解决办法是什么?