Java中switch语句的最佳替代选择

And*_*son 1 java switch-statement

当我们有5个切换用例时,switch语句非常好,但是在我们的情况下,我们有15个切换用例。

我想知道什么是Java中switch语句的最佳替代选择

private OpwaardernId getOpwaardernId(String opId) {

    OpwaardernId opwaardernId;
    switch (opId) {
        case "ID001":
            opwaardernId = opwaardernId.of("xxx");
            break;
        case "ID002":
            opwaardernId = opwaardernId.of("123");
            break;
        case "ID002":
            opwaardernId = opwaardernId.of("abc");
            break;
        case "ID003":
            opwaardernId = opwaardernId.of("asd");
            break;
        case "ID004":
            opwaardernId = opwaardernId.of("rrr");
            break;
        case "ID005":
            opwaardernId = opwaardernId.of("ttt");
            break;
                ...
        case "ID015":
            opwaardernId = opwaardernId.of("aaa");
            break;

        default:
            opwaardernId = null;

    }
    return opwaardernId;
}
Run Code Online (Sandbox Code Playgroud)

YCF*_*F_L 6

您可以使用地图作为示例:

private OpwaardernId getOpwaardernId(String opId) {
    // store all value in a map
    Map<String, String> map = Map.of("ID001", "xxx", "ID002", "123", ..);
    // then just call 
    return map.containsKey(opId) ? opwaardernId.of(map.get(opId)) : null;
}
Run Code Online (Sandbox Code Playgroud)