Java int строка возврата - PullRequest
       4

Java int строка возврата

2 голосов
/ 17 сентября 2011

У меня есть переменная int, и я хочу создать метод String для возврата этой переменной int, как мне это сделать? Пример ниже ... и установите метод getAge() для возврата "young", если ему 18 лет, и "old", когда ему 30 лет.

private int age;

public String getAge() {

}

Ответы [ 4 ]

5 голосов
/ 17 сентября 2011

В буквальном смысле:

public String getAge() {
    return (30 == age)? "old":
           (18 == age)? "young":
                // because you said 18 is young, 30 is old, but didn't say
                // anything about all of the other ages!
                "I don't understand!";
}

Вы можете сделать это несколькими способами. Тройная структура и выражение «если», как правило, являются лучшими.

// this if/else reads "(if age >= 30 then return old) else return young"
public String getAge() {
    if (30 <= age)
       return "old";
    else
       return "young";
}

// this ternary statement reads "return (if age >= 30 then old) else young"
public String getAge() {
    return (30 <= age)? "old":"young";
}

// This would be my preference
public String getAge() {
    // add bounds checking!
    if (125 <= age)
       return "You are probably dead";
    else if (0 > age)
       return "Hi doc brown! What's it like to travel through time?";
    else if (30 <= age)
       return "old";
    return "young";
}
0 голосов
/ 17 сентября 2011

Я бы не рекомендовал это для тривиального случая всего 2 века, но если вы хотите расширить ...

Конечно, вы также можете добавить строки отображения.

public enum AgeMonikers
{
    AweCute(2),
    DontTouchThat(4),
    Child(10),
    Preteen(13),
    Trouble(20),
    MoveOut(24),
    ThinkYouKnowEverythingDev(25),
    ActuallyKnowSomeDev(30),
    OldFart(100),
    WishIWasDead(Integer.MAX_VALUE);

    private int maxAge;

    private AgeMonikers(int ageLimit)
    {
        maxAge = ageLimit;
    }

    static public AgeMonikers getMoniker(int age)
    {
        if (age < 0) 
            return null;

        for(int i=values().length-1; i>0; i--)
        {
            AgeMonikers val = values()[i];

            if (age >= val.maxAge)
                return values()[i+1];
        }
        return AweCute;  // age < 2 - I know it will include negatives.
    }
}


public String getAge() 
{
    return AgeMoniker.getMoniker(age).toString();
}
0 голосов
/ 17 сентября 2011

getAge () не является хорошим методом именования.

Другие разработчики / пользователи смутились, что getAge () вернет целое число.

Я думаю, вы должны назвать свой метод как getAgeClass ().

Обратите внимание, что публичный метод будет доступен другим классам, очень важно, чтобы ваше имя публичного метода былозначимый, не путать.Это хорошая практика, когда вы код OO

0 голосов
/ 17 сентября 2011

Лучше использовать оператор switch, так как условное выражение не меняется.Так что сделайте это как:

switch (age) {
    case 18:
        return "young";
    case 30:
        return "old";
    default:
        return "??";
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...