Acceder à un boolean

Acceder à un boolean - Java - Programmation

Marsh Posté le 23-11-2009 à 23:19:19    

Bonjour,
 
    J'ai un boolean dont le nom est "Cuisine", un autre dont le nom est "Chambre".
 
Dans une classe Formula1 j'ai  
   Cuisine = false;
   Chambre = true;
 
par défaut dans le constructeur.
 
Chambre et Cuisine héritent de Salle
 
Bien maintenant je souhaite faire une méthode
 
     public boolean verifAutorisation(Salle s)
 
et dans cette méthode je voudrais savoir la valeur du boolean dont le nom est s.getClass().getName()
en gros si je lui envoie une cuisine, je veux vérifier si le boolean dont le nom est cuisine est true ou false.
 
 
Merci bien :)
 
 
 

Reply

Marsh Posté le 23-11-2009 à 23:19:19   

Reply

Marsh Posté le 24-11-2009 à 02:41:39    

Je n'ai pas compris ce que Formula1 vient faire là dedans et à quoi peuvent bien servir ces booléens.
 
Ca sent le mauvais design! Essaye de faire une belle modélisation qui ne demande pas à faire de la réflection.

Reply

Marsh Posté le 24-11-2009 à 09:18:59    

M Orthographe a écrit :

Bonjour,
 
    J'ai un boolean dont le nom est "Cuisine", un autre dont le nom est "Chambre".
 
Dans une classe Formula1 j'ai  
   Cuisine = false;
   Chambre = true;
 
par défaut dans le constructeur.
 
Chambre et Cuisine héritent de Salle
 
Bien maintenant je souhaite faire une méthode
 
     public boolean verifAutorisation(Salle s)
 
et dans cette méthode je voudrais savoir la valeur du boolean dont le nom est s.getClass().getName()
en gros si je lui envoie une cuisine, je veux vérifier si le boolean dont le nom est cuisine est true ou false.
 
 
Merci bien :)
 


 
y a comme une contradiction là.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 24-11-2009 à 09:37:53    

Je crois qu'il a des classes qui portent le même nom que des booléens stockés dans une autre classe et en fonction du type de la classe passée en paramètre à une méthode implémentée on se sait où, il veut accéder à tel ou tel booléen. Bref, un truc tordu.
 
M Orthographe, pour qu'on puisse t'aider en te conseillant un meilleur design, explique-nous le rôle et fonctionnement de ton application et sa structure globale.


Message édité par cbeyls le 24-11-2009 à 09:43:01
Reply

Marsh Posté le 24-11-2009 à 15:06:54    

Tout d'abord merci pour vos réponses, je vais simplifer les choses.
En fait j'ai un boolean dont le nom est un nom de classe.
 
Ainsi j'aimerai acceder à ce boolean via une string (en fait via monObj.getClass().getNom()
 
en gros si l'objet est une instance de la classe Cuisine
je dois regarder le boolean dont le nom est Cuisine...
 
merci

Reply

Marsh Posté le 24-11-2009 à 15:25:23    

M Orthographe a écrit :

Tout d'abord merci pour vos réponses, je vais simplifer les choses.
En fait j'ai un boolean dont le nom est un nom de classe.
 
Ainsi j'aimerai acceder à ce boolean via une string (en fait via monObj.getClass().getNom()
 
en gros si l'objet est une instance de la classe Cuisine
je dois regarder le boolean dont le nom est Cuisine...
 
merci


comme dit plus haut, ca sent très fort le problème de modélisation... [:cerveau pouah]

Reply

Marsh Posté le 24-11-2009 à 15:41:04    

J'ai une classe Salle
Soit c'est une Cuisine, soit une Chambre  
En fonction du type de contrat du client,
Dans la classe type1 j'ai Cuisine=false;  par exemple
Comment savoir si il peut utiliser la Cuisine ?
 
le fait est que mon appli est extensible donc je ne connais pas toutes les classes  
 
donc en fait je voudrais verifier si
mon objet Salle (qui prend donc différents type (Cuisine chambre salledebains ect...)  est autorisé pour un client avec un type de contrat
 
Me suivez-vous ?

Reply

Marsh Posté le 24-11-2009 à 15:45:13    

a quoi sert ton boolean? a dire si la salle est occupée par exemple? dans ce cas la, tu crée un boolean occupe dans la classe Salle, et tu pourras checker le contenu de masalle.occupe, que cette salle soit une cuisine ou une chambre...

 

ce sont les principes basique de l'héritage en programmation. je t'invite à les revoir.


Message édité par pataluc le 24-11-2009 à 15:45:40
Reply

Marsh Posté le 24-11-2009 à 15:55:24    

non le boolean sert à dire si dans ce type précis de contrat, l'utilisateur à le droit d'utiliser la salle particuliere

Reply

Marsh Posté le 24-11-2009 à 15:56:31    

c'est pas le problème. j'ai considéré que le boolean servait à l'occupation de la salle pour l'exemple, mais qu'il serve à n'importe quoi le principe est le même.


Message édité par pataluc le 24-11-2009 à 15:57:36
Reply

Marsh Posté le 24-11-2009 à 15:56:31   

Reply

Marsh Posté le 24-11-2009 à 16:00:52    

bien non. comment savoir si le boolean cuisine dans la classe typeAbonnement est a true ou false en n'ayant que le nom de l'objet à prendre en compte ?

Reply

Marsh Posté le 24-11-2009 à 16:02:20    

ou si mes problèmes te choquent je veux juste savoir la synthaxe pour ecrire
 
boolean b = true
String mastring = "b"
 
if(mastring)  
 
evidemment if(mastring) ne fonctionne pas

Reply

Marsh Posté le 24-11-2009 à 16:08:52    

M Orthographe a écrit :

ou si mes problèmes te choquent je veux juste savoir la synthaxe pour ecrire
 
boolean b = true
String mastring = "b"
 
if(mastring)  
 
evidemment if(mastring) ne fonctionne pas


[:vomi]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-11-2009 à 16:09:27    

tu faisait du PHP avant :??:


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 24-11-2009 à 16:18:24    

oui  
 
mais ça doit bien etre possible de lire la valeur d'un boolean dont le nom est passé en String non?

Reply

Marsh Posté le 24-11-2009 à 16:19:32    

M Orthographe a écrit :

oui

 

mais ça doit bien etre possible de lire la valeur d'un boolean dont le nom est passé en String non?


Non. Et même si ça l'était, on te dirait que ça l'est pas (comme çà t'es bien avancé: tu sais toujours pas si c'est possible), c'est aussi dégueulasse que sans intérêt, si t'as besoin de trouver une valeur indexée par une chaîne de caractère tu utilises une map. Mais dans ce cas précis, je dirais surtout que t'en as pas besoin et que tu fais n'importe quoi.


Message édité par masklinn le 24-11-2009 à 16:25:43

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-11-2009 à 16:19:55    

M Orthographe a écrit :

oui  
 
mais ça doit bien etre possible de lire la valeur d'un boolean dont le nom est passé en String non?


 
C'est déjà crétin en php, alors en java...[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-11-2009 à 16:20:29    

soite, mais est-ce possible ?

Reply

Marsh Posté le 24-11-2009 à 16:22:00    

je ne vois pas d'autre solution que de faire ça  
 
Comment savoir si le boolean Cuisine est a true dans le type contrat 1  
quand je traite un objet Cuisine et savoir si le boolean Chambre est a true quand je traite un objet Chambre ?

Reply

Marsh Posté le 24-11-2009 à 16:24:50    

M Orthographe a écrit :

je ne vois pas d'autre solution que de faire ça  
 
Comment savoir si le boolean Cuisine est a true dans le type contrat 1  
quand je traite un objet Cuisine et savoir si le boolean Chambre est a true quand je traite un objet Chambre ?


 [:cerveau zytrasnif]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-11-2009 à 16:27:25    

Vous pouvez m'aider au lieu de rire s'il vous plait ? c'est un forum d'aide non?

Reply

Marsh Posté le 24-11-2009 à 16:28:28    

M Orthographe a écrit :

Vous pouvez m'aider au lieu de rire s'il vous plait ? c'est un forum d'aide non?


La réponse est non. Aux deux questions.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-11-2009 à 16:31:12    

great

Reply

Marsh Posté le 24-11-2009 à 16:35:12    

M Orthographe a écrit :

c'est un forum d'aide non?


 
justement, on t'aide : on te dit que tu fais de la merde, et t'expliquer comment faire de la grosse merde serait le contraire de t'aider :o
 
reprends donc par rapport a ton besoin, au lieu de continuer de fouiller dans ta solution khakha :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 24-11-2009 à 16:44:04    

J'ai toujours pas compris ce qu'il voulait faire [:sadnoir]

Reply

Marsh Posté le 24-11-2009 à 16:47:12    

Moktar1er a écrit :

J'ai toujours pas compris ce qu'il voulait faire [:sadnoir]


 
Du php. Version crado.[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-11-2009 à 16:48:56    

Moktar1er a écrit :

J'ai toujours pas compris ce qu'il voulait faire [:sadnoir]


Moi non plus, mais vu les parties lisibles c'est pas bien ce qu'il veut faire :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-11-2009 à 16:53:58    

M Orthographe a écrit :

J'ai une classe Salle
Soit c'est une Cuisine, soit une Chambre  
En fonction du type de contrat du client,
Dans la classe type1 j'ai Cuisine=false;  par exemple
Comment savoir si il peut utiliser la Cuisine ?
 
le fait est que mon appli est extensible donc je ne connais pas toutes les classes  
 
donc en fait je voudrais verifier si
mon objet Salle (qui prend donc différents type (Cuisine chambre salledebains ect...)  est autorisé pour un client avec un type de contrat
 
Me suivez-vous ?


 
 
Il faut que tu te tournes vers une solution où dans la classe représentant le type de contrat, tu ais une liste des salles autorisées.
Les éléments de cette liste peuvent être l'identifiant du type de salle par exemple
 
Pour la vérification d'autorisation, il ne te restera plus qu'a voir si l'identifiant de la salle en paramètre est dans la liste
 

Code :
  1. public class Contrat {
  2.   private listeSallesAutorisees;
  3.   ....
  4.   public verifAutorisation(Salle s) {
  5.     return listeSallesAutorisees.contains(s.getTypeId());
  6.   }
  7. }


 

Reply

Marsh Posté le 24-11-2009 à 16:57:05    

Je vais reformuler.
 
    J'ai une interface Salle.
    Une classe SalleImplemente qui implémente salle.
 
    J'ai 2 classes Salon et Cuisine qui extendent SalleImplemente.
 
    J'ai une interface TypeContrat.
    Une classe TypeContratImplemente qui implémente TypeContrat.
 
    J'ai 2 classes TypeContrat1 et TypeContrat2 qui extendent TypeContrat.
     
    Une classe client dont l'attribut qui nous intéresse ici est  
                                                                   TypeContrat monContrat;    
 
 
     Dans mes types de contrats (TypeContrat1   et   TypeContrat2) j'aimerais spécifier des restrictions quant à l'utilisation des salles par le client
     Ex : TypeContrat1 : Salon autorisé mais Cuisine non,    et dans l'autre Salon et Cuisine autorisés.
 
     Je ne sais pas comment faire, j'ai mis des boolean mais c'est mal donc je souhaiterais un peu d'aide.
 
 
     Dans mon appli, à un moment j'arrive à récuperer le type de contrat du client, et le nom de la salle, je ne vois pas comment faire le lien
 
 
     Merci

Reply

Marsh Posté le 24-11-2009 à 16:58:21    

J'ai posté en même temps que bidem, je regarde

Reply

Marsh Posté le 24-11-2009 à 16:59:15    

C'est clair que c'est mieux que mes boolean..

Reply

Marsh Posté le 24-11-2009 à 17:02:11    

Bidem a écrit :

tu ais une liste des salles autorisées


Un Set :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-11-2009 à 17:05:48    

Comment ça ?

Reply

Marsh Posté le 24-11-2009 à 17:20:39    

C'est mieux de mettre la liste en List<String> ou un Vector<String>
?

Reply

Marsh Posté le 24-11-2009 à 17:22:10    

Citation :

La classe java.util.Vector est une classe héritée de Java 1. Elle n'est conservée dans l'API actuelle que pour des raisons de compatiblité ascendante et elle ne devrait pas être utilisée dans les nouveaux programmes. Dans tous les cas, il est préférable d'utiliser un ArrayList.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 24-11-2009 à 17:23:42    

Comme le conseil Masklinn, utilise un Set

 

EDIT : et un peu de doc pour aller avec Implémentations de Set
  donc dans ton cas, le mieux a priori, c'est un Hashset


Message édité par Bidem le 24-11-2009 à 17:27:25
Reply

Marsh Posté le 24-11-2009 à 17:23:45    

M Orthographe a écrit :

C'est mieux de mettre la liste en List<String> ou un Vector<String>
?


C'est mieux de mettre aucun des deux. Set<Class> :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 24-11-2009 à 23:31:32    

J'ai pas compris le lien entre Contrat et Salle.
Ta classe Contrat contient des références vers les salles incluses dans le contrat, c'est ça?
 
Dans ce cas oui, tu stockes tout ça dans un Set<Salle> et puis basta.

Reply

Marsh Posté le 25-11-2009 à 00:37:30    

merci pour ces précieuses réponses.

Reply

Marsh Posté le 25-11-2009 à 12:10:45    

lbo_booléen est une booléen = Vrai
lch_chaine est une chaine
len_entier est un entier
 
len_entier = lbo_booléen
lch_chaine = len_entier
lbo_booléen = lch_chaine
 
lbo_booléen = ?
a) 1
b) Vrai
c) Lol
d) 0
e) Erreur


---------------
I'm failing as fast as I can !! -- Vision-360, vos photos en grand format -- !! -- Les nouilles c'est bon
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed