为什么在Java 8中切换Integer包装器,不编译'char'大小写,但是当切换到Byte时编译正常吗?

问题描述 投票:12回答:1

不编译:

void test(Integer x){
      switch(x){
       case 'a':
      }
}

编译成功:

void test(Byte x){
      switch(x){
       case 'a':
      }
}
java java-8 switch-statement
1个回答
9
投票

原因相当复杂,但是全部都在Java语言规范的细节中(如果您愿意,精细打印

。)>

首先,JLS 14.11switch语句说以下:


0
投票

原因相当复杂。

© www.soinside.com 2019 - 2024. All rights reserved.