Как возвращать массивы в операторе switch-case в языке Java?

Всем привет! Суть задачи:нужно реализовать публичный статический метод,который возвращает массив из двух элементов – названий выходных дней на английском. Метод принимает на вход параметр – формат возврата в виде строки. Всего существует два возможных значения:

"long" (по умолчанию) – массив содержит строки "saturday" и "sunday"
"short" – массив содержит строки "sat" и "sun"

Задачу нужно решать с использованием оператора switch-case Мое решение выглядит следующим образом:

class App {
   
  public static void main(String[] args){
      App.getWeekends("long");
  }

    public static void getWeekends(){


     String[] day =new String[4];
     day[0]="saturday";
     day[1]="sunday";
     day[2]="sat";
     day[3]="sun";

     switch(day){
        case "long":
          return {"saturday","sunday"};

        case "short":
          return {"sat", "sun"};

      default:
       return null;    
     }
    }
  
}

Ответы (1 шт):

Автор решения: Nowhere Man
public static String[] getWeekends(String day) {
    switch(day) {
        case "long":
            return new String[]{"saturday", "sunday"};
        case "short":
            return new String[]{"sat", "sun"};
        default:
            return null;    
    }
}

или в ещё более кратком виде с использованием синтаксиса switch expression, который поддерживается полностью в Java 14 и выше:

public static String[] getWeekends(String day) {
    return switch(day) {
        case "long" -> new String[]{"saturday", "sunday"};
        case "short" -> new String[]{"sat", "sun"};
        default -> throw new IllegalArgumentException("Unknown day format: " + day);    
    };
}

Примечание: Вместо возврата null лучше выбросить исключение о неправильном входном параметре.

→ Ссылка