java - 重复的案例标签

java - duplicate case label

我正在尝试将我的 Maven 应用程序从 Eclipse Java EE Luna 移动到 IntelliJ Idea 14.0.3。

当我尝试在我的新想法中构建项目时 IDE 我收到这段代码的以下错误:

错误:java:大小写标签重复

char c = '-';
int postChar = -1;

switch (c) {
case 'ü': c = 'u'; postChar = 'e';
    break;
case 'ö': c = 'o'; postChar = 'e';
    break;
case 'ä': c = 'a'; postChar = 'e';
    break;
}

这段代码有什么问题?

此致

我怀疑是编码设置的问题。请尝试以下操作:

  1. 转到设置 (Ctrl+Alt+S / ,) > 编辑器 > 文件编码。确保 "Project Encoding"(顶部)设置为 "UTF-8"。您可能还想将 "IDE Encoding" 设置为 UTF-8。
    • 您可能还想在 File/Application > 其他设置 > 默认设置 中进行设置,以便将来的新项目默认使用这些设置。
  2. 在状态栏的右下角(右下角),确保文件的编码是UTF-8。如果不是,请更改它:

  1. 如果以上没有解决问题,请转到设置(Ctrl+Alt+S / ,) > Build Execution, Deployment > Compiler and in the "Additional build process VM Options" 添加 -Dfile.encoding=UTF8。还要确保顶部的 "Use compiler" 设置为 javac。如果您需要替代编译器,您可能必须解决该编译器的问题。我至少会尝试 javac 编译器,这样您就可以明确地说它是替代编译器的问题。
    • 作为替代方案,您可以设置 JAVA_TOOL_OPTIONS system/environment 变量,使其声明 -Dfile.encoding=UTF8,然后重新启动 IntelliJ IDEA,使其接收更改。之后所有 javajavac 命令都将使用文件编码设置。有关详细信息,请参阅 SO post Setting the default Java character encoding?
  2. 以上应该有效。如果没有,请尝试使用 Unicode 转义序列替换 char 声明作为故障排除步骤:

    switch (c)
    {
        case '\u00FC':
            c = 'u';
            postChar = 'e';
            break;
        case '\u00F6':
            c = 'o';
            postChar = 'e';
            break;
        case '\u00E4':
            c = 'a';
            postChar = 'e';
            break;
    }