Search code examples
javaduplicatessonarqube

How to remove duplicate cases in switch in java


I have sonarQube running but it says that there are duplicates within these lines of code. How do resolve this in a switch statement? I am just learning how unit testing in java works so any help would be great!

switch () {
    case "M":
        campusLogo = "/watermark_main.png";
        break;
    case "IN":
        campusLogo = "/Watermark_IN.png";
        break;
    case "WA":
        campusLogo = "/Watermark_WA.png";
        break;
    case "MO":
        campusLogo = "/Watermark_MO.png";
        break;
    case "NC":
        campusLogo = "/Watermark_NC.png";
        break;
    case "NV":
        campusLogo = "/Watermark_NV.png";
        break;
    case "OH":
        campusLogo = "/Watermark_OH.png";
        break;
    case "TN":
        campusLogo = "/Watermark_TN.png";
        break;
    case "TX":
        campusLogo = "/Watermark_TX.png";
        break;

    default:
        campusLogo = "/watermark_main.png";
}

Solution

  • I think below solution should work for you:

    switch (choice) {
        case "IN":
        case "WA":
        case "MO":
        case "NC":
        case "NV":
        case "OH":
        case "TN":
        case "TX":
            campusLogo = "/Watermark_" + choice + ".png";
            break;
    
        default:
            campusLogo = "/watermark_main.png";
    }