由于我有多个String案件应该以相同的方式处理,因此我尝试:
String
switch(str) { // compiler error case "apple", "orange", "pieapple": handleFruit(); break; }
但是我得到一个编译器错误。
在Java中,我是否应该逐个调用相同的函数:
switch(str) { case "apple": handleFruit(); break; // repeat above thing for each fruit ... }
有没有更简单的风格?
您必须case为每个String 使用关键字,如下所示:
case
switch (str) { //which mean if String equals to case "apple": // apple case "orange": // or orange case "pieapple": // or pieapple handleFruit(); break; }
编辑02/05/2019
从Java 12开始,提出了新的switch case语法,因此要解决此问题,方法如下:
switch (str) { case "apple", "orange", "pieapple" -> handleFruit(); }
现在,您可以选择多个选项,并用逗号分隔,一个箭头->然后是您要执行的操作。
->
另一种语法是:
考虑到每种情况都返回一个值,并且您想在一个变量中设置值,假设handleFruit()返回一个String旧语法应为:
handleFruit()
String result; // <-------------------------- declare switch (str) { //which mean if String equals to case "apple": // apple case "orange": // or orange case "pieapple": // or pieapple result = handleFruit(); // <----- then assign break; }
现在使用Java 12,您可以像这样:
String result = switch (str) { // <----------- declare and assign in one shot case "apple", "orange", "pieapple" -> handleFruit(); }
不错的语法