Hirdetés

Új hozzászólás Aktív témák

  • axioma
    veterán

    Hogy lehetne megoldani, hogy if-else szerkezeten belül a megfelelő return hajtódjon végre?
    (A feladat szerint a String szam telefonszám bekérése után a megfelelő osztályba kerülünk, ahol további számítások vannak, de azt már megírtam.)

    private static PhoneNumber PhoneNumber;  //gyanítom erre is szükség lesz

    public static PhoneNumber create(String szam) {
            String regex = "\\d+";
            String firstLetter = String.valueOf(szam.charAt(0));
            if (szam.matches(regex) == false) {
                System.out.println("nem jó");
                System.exit(0);
            } else if (szam.matches(regex) == true) {
                System.out.println("tartalmazza");
                if (firstLetter == "1") {
                    PhoneNumber =  new KwakPhoneNumber();
                    return PhoneNumber;
                } else if (firstLetter == "8") {
                    PhoneNumber = new IkiPhoneNumber();
                    return PhoneNumber;
                } else if (firstLetter == "9") {
                    PhoneNumber = new McChipPhoneNumber();
                    return PhoneNumber;
                }
            }
              return PhoneNumber; //ez itt a fő kérdés, hogyan adjam vissza a megfelelő returnt
            }

    Egyreszt tipikus switch-case pelda az else if-ek helyett, ha mar tanultatok.
    Masreszt gyanus, hogy az altipusok konstruktorai nem kapjak meg a szam nevu stringet.
    Harmadreszt lehet egybol return new KwakPhoneNumber(szam);alakban. Vagy ha mar mindenkepp valtozoba is teszed (bar ez a jelen reszlet nem indokolja), akkor nem kell az adott agon vissza is adni, eleg az ahova odakommentelted... ami jelenleg nonreachable, az IDE nem jelzi neked? ja nem, akkor az jo, ha az az altalanos eset, de ott is kene akkor egy konstruktorhivas es a parameter megadasa.

    [Amugy az altipusok azok leszarmazottjai rendesen a PhoneNumbernek? Mert anelkul nem fog menni.]

Új hozzászólás Aktív témák