为什么我在下面的 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/