2010-09-26 6 views
0

Je crée un api pour un répertoire qui dispose de 3 différents types de téléphone numéros: FAX, HOME, TRAVAIL, CELLJava énumérations - Nombre add() et la méthode de classification

Je veux ajouter un numéro à un type spécifique, mais ne veulent pas classer FAX, HOME, WORK etc. comme types primitifs car je considère que je pourrais le changer à une date ultérieure.

J'essayais d'utiliser des énumérations mais je ne sais pas comment je peux l'utiliser efficacement dans ce cas.

Le code que je travaillais jusqu'à présent pour cette partie:

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 
.. 
} 

Mais je ne comprends toujours pas comment je pourrais attribuer un phoneNumber spécifique à un numberType spécifique.

Je suis toujours confus. Je veux que ce soit facile pour quelqu'un d'utiliser cette fonctionnalité.

Aidez-nous s'il vous plaît.

Merci.

Répondre

0

Vous pouvez écrire une méthode

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

Vous pouvez appeler cette méthode avant d'appeler le constructeur que vous avez mentionné.

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

Je suggère également d'utiliser des chaînes plutôt que des ints pour les numéros de téléphone.

0

Il vous suffit de créer une nouvelle instance de PhoneNumber:

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

Je suggère également d'utiliser une chaîne pour les numéros de téléphone :)

Questions connexes