Java Enums - Число add () и метод классификации - PullRequest
0 голосов
/ 26 сентября 2010

Я создаю API для телефонной книги, которая имеет 3 различных типа телефонных номеров: ФАКС, ДОМ, РАБОТА, ЯЧЕЙКА

Я хочу добавить число к определенному типу, но не хочу классифицировать ФАКС, ДОМ, РАБОТА и т. Д. Как примитивные типы, поскольку я считаю, что я могу изменить его позднее.

Я пытался использовать перечисления, но не ясно, как я могу использовать это эффективно в этом случае.

Код, который я до сих пор работал для этой части:

private enum NumberType{

FAX, WORK, HOME, CELL}

class PhoneNumber{

 PhoneNumber(int Number, NumberType type){

    this.number = Number;

    this.type = type;
}
..
getter and setter for above
..
}

Но я до сих пор не понимаю, как можно назначить конкретный номер телефона определенному типу номера.

Я все еще в замешательстве. Я хочу, чтобы кому-то было проще использовать эту функцию.

Пожалуйста, помогите.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2010

Вы можете написать метод

NumberType findPhoneNumberType(String phoneNumber)
{
      //logic to differentiate between various types of phone numbers.
      //advantage: you can also check for illegal phone number values.
}

Вы можете вызвать этот метод перед вызовом упомянутого вами конструктора.

NumberType nt = findPhoneNumberType(number);
PhoneNumber phoneNumber = new PhoneNumber(number, nt);

Я бы также предложил использовать Строки, а не целые числа для телефонных номеров.

0 голосов
/ 26 сентября 2010

Вам просто нужно создать новый экземпляр PhoneNumber:

PhoneNumber homeNumber = new PhoneNumber(1234567890, NumberType.HOME);

Я бы также предложил использовать строку для телефонных номеров:)

...