Java,如何在方法中放入开关盒?

Ame*_*tiq 2 java methods switch-statement

我正在尝试在其中具有switch语句的Triangle类中实现getter方法。通常,我会为每个参数一个一个地编写getter方法,但我认为我可以使用switch语句来对其进行优化。

通常情况会是这样的;

public double getSide1(){
    return side1;
}
Run Code Online (Sandbox Code Playgroud)

但是每个三角形边要重复三遍。但是我想做些类似的事情;

public double getSide(int n) {
    switch (n) {
        case 1: return side1; 
        case 2: return side2; 
        case 3: return side3; 
        default: System.out.println("Not a valid side.");
    }
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它无法识别切换案例本身的收益。所以我必须return 0在末尾添加。但随后的返回值为0。

那么我该如何解决呢?

Era*_*ran 8

The problem is in the default case of your switch statement:

default: System.out.println("Not a valid side.");
Run Code Online (Sandbox Code Playgroud)

Outputting an error message is not enough.

You must either return some default value

default: {
    System.out.println("Not a valid side.");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

or (better) throw an exception when you reach the default case.

default: throw new IllegalArgumentException ("Not a valid side.");
Run Code Online (Sandbox Code Playgroud)