Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3278 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  255  256  257  ..  327  328  329  330  331  332
Auteur Sujet :

BlaBlaTech@JAVA [ELITE, viendez les boobs]

n°1905019
nraynaud
lol
Posté le 13-07-2009 à 21:29:26  profilanswer
 

Reprise du message précédent :
vous savez s'il y a moyen d'intercepter les accès en écriture à un champ en java ? avec CGLIB par exemple ?
 
l'idée c'est que j'ai une classe avec une tonne de champs qui est remplie par un formulaire, donc j'aimerai dégager les getters et setters pour gagner des lignes.
 
Comme je suis en swing, j'ai besoin d'observateur sur les champs pour le MVC. Pour pas trop me faire chier, j'ai fait un proxy et j'intercepte les setter pour balourder les évènements de propertychange.
 
J'aimerai passer une vitesse supérieure et dégager les getters et setters, mais j'ai quand même besoin d'envoyer les events. D'où ma question.


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le 13-07-2009 à 21:29:26  profilanswer
 

n°1905020
the real m​oins moins
Posté le 13-07-2009 à 21:31:03  profilanswer
 

tu écris tout a la main, et quand l'appli est finie (pas avant) tu penses ptet a generer le bordel.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1905021
0x90
Posté le 13-07-2009 à 21:36:22  profilanswer
 

nraynaud a écrit :

vous savez s'il y a moyen d'intercepter les accès en écriture à un champ en java ? avec CGLIB par exemple ?

 

l'idée c'est que j'ai une classe avec une tonne de champs qui est remplie par un formulaire, donc j'aimerai dégager les getters et setters pour gagner des lignes.

 

Comme je suis en swing, j'ai besoin d'observateur sur les champs pour le MVC. Pour pas trop me faire chier, j'ai fait un proxy et j'intercepte les setter pour balourder les évènements de propertychange.

 

J'aimerai passer une vitesse supérieure et dégager les getters et setters, mais j'ai quand même besoin d'envoyer les events. D'où ma question.

 

Avec ASM c'est assez simple, t'as un classreader que tu branche à un classwriter avec le premier tu visite le code, avec un visiteur qui écrit dans le writer, sauf que t'override la visite de PUTFIELD pour mettre ton handler autour. Après t'as plus qu'à charger ce qui sort du writer comme une classe, tadam \o/
[edit]
Ah mais chuis con, j'ai vu les participants à l'envers je crois, ça va pas le faire en fait /o\


Message édité par 0x90 le 13-07-2009 à 21:41:34

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1905025
nraynaud
lol
Posté le 13-07-2009 à 22:27:34  profilanswer
 

the real moins moins a écrit :

tu écris tout a la main, et quand l'appli est finie (pas avant) tu penses ptet a generer le bordel.


vu qu'il n'y a aucune définition claire de "finie", c'est fuck.
 
Je commence à générer quand j'en ai marre de tout le temps écrire le même code.


---------------
trainoo.com, c'est fini
n°1905027
the real m​oins moins
Posté le 13-07-2009 à 22:35:51  profilanswer
 

ben ouais mais fait ça au lieu de sur-engineerer à coup d'asm/proxys avant d'avoir un truc qui marche de a à z ? si y'a 40 attributs a copy paster spa la mort quoi ..


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1905028
nraynaud
lol
Posté le 13-07-2009 à 22:52:41  profilanswer
 

the real moins moins a écrit :

ben ouais mais fait ça au lieu de sur-engineerer à coup d'asm/proxys avant d'avoir un truc qui marche de a à z ? si y'a 40 attributs a copy paster spa la mort quoi ..


y'en a 90 et là j'en suis à une quinzaine et c'est déjà le merdier.
et j'ai des PDF qui se génère de A à Z


---------------
trainoo.com, c'est fini
n°1905349
nraynaud
lol
Posté le 15-07-2009 à 14:14:00  profilanswer
 

juste pour faire chier moinsmoins :  

Code :
  1. private static void emitReadResolve(final ClassEmitter ce) {
  2.             final CodeEmitter e = ce.begin_method(Constants.ACC_PRIVATE, new Signature("readResolve", Type.getType(Object.class), new Type[0]), new Type[]{Type.getType(ObjectStreamException.class)});
  3.             e.load_this();
  4.             e.load_this();
  5.             e.new_instance(PROPERTY_CHANGE_SUPPORT_TYPE);
  6.             e.dup();
  7.             e.load_this();
  8.             e.invoke_constructor(PROPERTY_CHANGE_SUPPORT_TYPE, TypeUtils.parseConstructor("Object" ));
  9.             e.putfield("support" );
  10.             e.load_this();
  11.             e.return_value();
  12.             e.end_method();
  13.         }


---------------
trainoo.com, c'est fini
n°1905837
basketor63
Sarkozy en prison
Posté le 16-07-2009 à 14:54:21  profilanswer
 

parfois je me demande pourquoi

 
Code :
  1. class UNTYPE{
  2. public UNAUTRETYPE uneFonction(){ .... return ....;}
  3. }
  4. UNTYPE a = null;
  5. UNAUTRETYPE u = a.uneFonction();
 

ne pourrait pas renvoyer tout simplement null plutot que péter ? :o
potentiellement ça peut devenir plus dur à débuguer, mais bon ...

 

je sens que nraynaud va nous sortir son traité sur le langage objet en quarante tomes :D

Message cité 2 fois
Message édité par basketor63 le 16-07-2009 à 14:56:20
n°1905845
nraynaud
lol
Posté le 16-07-2009 à 15:08:20  profilanswer
 

basketor63 a écrit :

parfois je me demande pourquoi
 

Code :
  1. class UNTYPE{
  2. public UNAUTRETYPE uneFonction(){ .... return ....;}
  3. }
  4. UNTYPE a = null;
  5. UNAUTRETYPE u = a.uneFonction();


 
ne pourrait pas renvoyer tout simplement null plutot que péter ? :o
potentiellement ça peut devenir plus dur à débuguer, mais bon ...
 
je sens que nraynaud va nous sortir son traité sur le langage objet en quarante tomes :D


ça s'appelle prolonger une fonction : prévoir une valeur de sortie là où normalement il n'en existe pas.
Parfois c'est naturel, comme dans ton cas, mais parfois pas du tout.
Les exemples les plus chiants nous viennent du collège : la racine carrée ou log d'un nombre négatif, 0/0 (hum celui-ci il est spécial en fait),  etc. Là, il n'y a pas de prolongement naturel. Et pas de bonne solution artificielle non plus. Pareil pour la tête d'une liste vide.
 
Donc comme on sait pas résoudre tous les cas, on s'abstient partout (c'est pas vrai y'a qu'à voir Map.get(), mais c'est une lib, pas le core), y compris quand on saurait faire.
 
pour avoir bossé une fois avec un langage qui se voulait "sans erreurs" (donc tout était prolongé) ça ne résout rien en fait, c'est une fausse bonne idée au quotidien. La vie est irrégulière, et nos outils font avec.


---------------
trainoo.com, c'est fini
n°1905852
basketor63
Sarkozy en prison
Posté le 16-07-2009 à 15:29:27  profilanswer
 

nraynaud a écrit :


ça s'appelle prolonger une fonction : prévoir une valeur de sortie là où normalement il n'en existe pas.
Parfois c'est naturel, comme dans ton cas, mais parfois pas du tout.
Les exemples les plus chiants nous viennent du collège : la racine carrée ou log d'un nombre négatif, 0/0 (hum celui-ci il est spécial en fait),  etc. Là, il n'y a pas de prolongement naturel. Et pas de bonne solution artificielle non plus. Pareil pour la tête d'une liste vide.

 

Donc comme on sait pas résoudre tous les cas, on s'abstient partout (c'est pas vrai y'a qu'à voir Map.get(), mais c'est une lib, pas le core), y compris quand on saurait faire.

 

pour avoir bossé une fois avec un langage qui se voulait "sans erreurs" (donc tout était prolongé) ça ne résout rien en fait, c'est une fausse bonne idée au quotidien. La vie est irrégulière, et nos outils font avec.

 

je pensais aussi à la division par zéro, mais d'un autre côté on la multiplication par zéro qui fonctionne.
de même des fonctions ensemblistes sur l'ensemble vide peuvent donner l'ensemble vide.

 


Tu parles du cas inverse, ou tout est prolongé, c'est vrai qu'on se retrouverait avec le cas inverse.
C'est à dire que parfois on voudrait pas qu'il soit possible de faire

 

UNTYPE a = null;
UNAUTRETYPE u = a.uneFonction();

 

Donc du coup on devrait quand même en arriver à mettre un if testant si a est null autour de l'appelle de a.uneFonction(), donc je suis d'accord ça ne résous rien fondamentalement de faire tout l'un ou l'autre.

 

Mais on pourrait imaginer une syntaxe spéciale, par exemple a/Unfonction() qui permettrait d'activer ou non le prolongement par exemple :D
Enfin bref, je vois que ça existe ma question est satisfaite :o


Message édité par basketor63 le 16-07-2009 à 15:37:36
mood
Publicité
Posté le 16-07-2009 à 15:29:27  profilanswer
 

n°1905857
the real m​oins moins
Posté le 16-07-2009 à 15:41:54  profilanswer
 

et le "prolongement" resterait un comportement flou et indéfini.
Par contre: http://en.wikipedia.org/wiki/Null_Object_pattern
 


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1905870
nraynaud
lol
Posté le 16-07-2009 à 15:56:46  profilanswer
 

the real moins moins a écrit :

et le "prolongement" resterait un comportement flou et indéfini.
Par contre: http://en.wikipedia.org/wiki/Null_Object_pattern
 


les cas où on peut utiliser ça sont assez rares en fait. surtout quand t'as pas de closures.
 


---------------
trainoo.com, c'est fini
n°1905885
basketor63
Sarkozy en prison
Posté le 16-07-2009 à 16:37:56  profilanswer
 

the real moins moins a écrit :

et le "prolongement" resterait un comportement flou et indéfini.
Par contre: http://en.wikipedia.org/wiki/Null_Object_pattern

 


 

java et son utilisation abusive des interfaces, au secours :/

 

cette méthode peut s'avérer utile ouais, mais c'est pas généralisable

Message cité 2 fois
Message édité par basketor63 le 16-07-2009 à 16:45:50
n°1905890
masklinn
í dag viðrar vel til loftárása
Posté le 16-07-2009 à 17:08:01  profilanswer
 

basketor63 a écrit :

parfois je me demande pourquoi

 
Code :
  1. class UNTYPE{
  2. public UNAUTRETYPE uneFonction(){ .... return ....;}
  3. }
  4. UNTYPE a = null;
  5. UNAUTRETYPE u = a.uneFonction();
 

ne pourrait pas renvoyer tout simplement null plutot que péter ? :o
potentiellement ça peut devenir plus dur à débuguer, mais bon ...

 

je sens que nraynaud va nous sortir son traité sur le langage objet en quarante tomes :D


null ça pue la merde. Et pour ton truc, c'est le comportement d'Objective-C, et c'est stupide: tu te retrouves avec des nulls invisibles qui se balladent partout dans le soft, et habituellement ils arrivent à des endroits où ils sont pas censés arriver (remarques que ceux de Java font pareil)

basketor63 a écrit :

cette méthode peut s'avérer utile ouais, mais c'est pas généralisable


Bah si, c'est généralisable au special case pattern. Et c'est généralement (mais pas systématiquement) utilisable.

Message cité 1 fois
Message édité par masklinn le 16-07-2009 à 17:09:18

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1905895
the real m​oins moins
Posté le 16-07-2009 à 17:32:22  profilanswer
 

basketor63 a écrit :


 
java et son utilisation abusive des interfaces, au secours :/
 
cette méthode peut s'avérer utile ouais, mais c'est pas généralisable


 
le mec qui voulait pas utiliser d'entier primitif ...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1905898
basketor63
Sarkozy en prison
Posté le 16-07-2009 à 17:34:19  profilanswer
 

masklinn a écrit :

null ça pue la merde. Et pour ton truc, c'est le comportement d'Objective-C, et c'est stupide: tu te retrouves avec des nulls invisibles qui se balladent partout dans le soft, et habituellement ils arrivent à des endroits où ils sont pas censés arriver (remarques que ceux de Java font pareil)

 

ça n'a rien de stupide, c'est juste le comportement inverse
dans les deux cas tu retrouves dans des situations où tu dois faire des vérifications si c'est pas le comportement que tu désires.

 

Là je bosse bien en java avec une fille qui semble avoir une peur bleue des null pointer exception, alors que je trouve qu'au contraire quitte à les avoir, c'est une chance d'être sur que ton code est solide et n'a pas de comportement imprévu.
Avoir le prolongement possible tant que c'est prévu, et systématique ou alors indiqué par une syntaxe particuliere, je vois pas ça comme un problème que ça pète pas sur un null.

 

Là d'ailleurs la fille voudrait encore un autre cas, ça serait de pas avoir de type nullable, afin que ça pete jamais quand on laisse passer des incohérences de code :D
Mais derrière elle doit quand même tester que la valeur du type primitif encapsulé correspond bien à une valeur arbitraire valant null.

 
masklinn a écrit :

Bah si, c'est généralisable au special case pattern. Et c'est généralement (mais pas systématiquement) utilisable.

 

je me suis mal exprimé, je voulais dire péniblement généralisable autant pour moi [:aloy]
bref aussi peu généralisable que l'est l'héritage multiple en java avec l'utilisation d'interface quoi. (Autre sujet sensible :D)

 
the real moins moins a écrit :

le mec qui voulait pas utiliser d'entier primitif ...

 

quand ils peuvent être nullable oui, vu qu'utiliser une valeur arbitraire indiquant que le type est vide n'est pas généralisable.
genre utiliser -1 si on a que des positifs je trouve ça vulgaire :o

Message cité 1 fois
Message édité par basketor63 le 16-07-2009 à 17:42:57
n°1905899
the real m​oins moins
Posté le 16-07-2009 à 17:34:48  profilanswer
 

nraynaud a écrit :


les cas où on peut utiliser ça sont assez rares en fait.  

ben nan. soit tu traites tes nulls à la main, parce que tu sais pourquoi ils sont là et tu fais avec, soit tu branches ça si tu as un comportement par défaut que tu veux appliquer qd y'a rien d'autre à faire.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1905901
masklinn
í dag viðrar vel til loftárása
Posté le 16-07-2009 à 17:51:54  profilanswer
 

basketor63 a écrit :

ça n'a rien de stupide, c'est juste le comportement inverse


C'est supide quand même.

basketor63 a écrit :

Là je bosse bien en java avec une fille qui semble avoir une peur bleue des null pointer exception


En quoi c'est un problème? C'est une merde infâme les NPE, tu sais pas d'où ça vient, tu sais pas où ça part et ça peut pêter n'importe quand. C'est l'une des exceptions les plus chiantes à débugger (en dehors des problèmes de concurrence)

basketor63 a écrit :

Là d'ailleurs la fille voudrait encore un autre cas, ça serait de pas avoir de type nullable


Comme quoi elle est plus intelligente que toi, parce qu'elle a bien raison :o

basketor63 a écrit :

afin que ça pete jamais quand on laisse passer des incohérences de code :D


Wat.

basketor63 a écrit :

Mais derrière elle doit quand même tester que la valeur du type primitif encapsulé correspond bien à une valeur arbitraire valant null.


Ou alors t'inclus la notion de nullabilité dans le type, comme ça tu sais où tu risques un null et ou tu le risques pas.

basketor63 a écrit :

bref aussi peu généralisable que l'est l'héritage multiple en java avec l'utilisation d'interface quoi. (Autre sujet sensible :D)


wat [:pingouino]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1905902
zapan666
Tout est relatif
Posté le 16-07-2009 à 17:55:19  profilanswer
 

masklinn a écrit :


Comme quoi elle est plus intelligente que toi, parce qu'elle a bien raison :o


Le problème est qu'elle veut mettre des primitifs à la place d'objet sur des informations facultatives. (d'après ce que j'ai compris)
 
genre
 

Code :
  1. int getNumeroDeRue() {
  2. return nummeroDeRue;
  3. }


quand il est pas présent, tu es pwned avec un type primitif.
 
 


---------------
my flick r - Just Tab it !
n°1905904
lorill
Posté le 16-07-2009 à 18:04:11  profilanswer
 

zapan666 a écrit :


Le problème est qu'elle veut mettre des primitifs à la place d'objet sur des informations facultatives. (d'après ce que j'ai compris)
 
genre
 

Code :
  1. int getNumeroDeRue() {
  2. return nummeroDeRue;
  3. }


quand il est pas présent, tu es pwned avec un type primitif.


de toutes facons dans ce genre de cas, il te faut une chaine., pour gérer le 2bis :o

n°1905905
basketor63
Sarkozy en prison
Posté le 16-07-2009 à 18:07:12  profilanswer
 

Code :
  1. public class CompteEnBanque {
  2.    public int getTuneSurCompteCourant() {
  3.      return tuneSurCompteCourant;
  4.    }
  5.    public int getTuneSurLivretA() {
  6.      return tuneSurLivretA;
  7.    }
  8. }
 

si t'as pas de livret A tu retournes -1 ? :D
c'est pas sympas, t'as pas de compte et t'es déjà à découvert :D

Message cité 2 fois
Message édité par basketor63 le 16-07-2009 à 18:08:40
n°1905910
nraynaud
lol
Posté le 16-07-2009 à 18:12:38  profilanswer
 

masklinn a écrit :


En quoi c'est un problème? C'est une merde infâme les NPE, tu sais pas d'où ça vient, tu sais pas où ça part et ça peut pêter n'importe quand. C'est l'une des exceptions les plus chiantes à débugger (en dehors des problèmes de concurrence)


une des plus faciles tu veux dire ?


---------------
trainoo.com, c'est fini
n°1905911
masklinn
í dag viðrar vel til loftárása
Posté le 16-07-2009 à 18:12:56  profilanswer
 

basketor63 a écrit :

si t'as pas de livret A tu retournes -1 ? :D


Tu te prends une exception, ya pas de raison qu'on demande le contenu du livret A si t'as pas de livret A.

nraynaud a écrit :


une des plus faciles tu veux dire ?


Bah non, tu sais que t'as un null mais savoir d'où il vient c'est pas nécessairement une mince affaire. Et habituellement ton bug il est pas là où la NPE pète (si t'avais pas de code de gestion de nulls c'est que tu t'attendais pas à en avoir un dans le coin) mais quelque part en amont à l'injection du null dans le runtime, et quand la NPE pète ben t'as aucune idée de la source du null en question.

Message cité 3 fois
Message édité par masklinn le 16-07-2009 à 18:14:44

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1905914
zapan666
Tout est relatif
Posté le 16-07-2009 à 18:16:46  profilanswer
 

masklinn a écrit :


Tu te prends une exception, ya pas de raison qu'on demande le contenu du livret A si t'as pas de livret A.


 

masklinn a écrit :


Bah non, tu sais que t'as un null mais savoir d'où il vient c'est pas nécessairement une mince affaire. Et habituellement ton bug il est pas là où la NPE pète (si t'avais pas de code de gestion de nulls c'est que tu t'attendais pas à en avoir un dans le coin) mais quelque part en amont à l'injection du null dans le runtime, et quand la NPE pète ben t'as aucune idée de la source du null en question.


 [:gordon shumway] j'ai cru avoir lu ce genre de point de vue dans un livre de python


---------------
my flick r - Just Tab it !
n°1905917
basketor63
Sarkozy en prison
Posté le 16-07-2009 à 18:24:08  profilanswer
 

masklinn a écrit :

Tu te prends une exception, ya pas de raison qu'on demande le contenu du livret A si t'as pas de livret A.


 
Et comment on le sait que t'as pas de livret A ? (c'est juste un exemple, de toutes façons)
 
Si t'as 15 champs de valeurs qui sont potentiellement non renseignables, tu vas devoir maintenir 15 booléens pour dire que ton champ est renseigné ou non ?
 

masklinn a écrit :

Bah non, tu sais que t'as un null mais savoir d'où il vient c'est pas nécessairement une mince affaire. Et habituellement ton bug il est pas là où la NPE pète (si t'avais pas de code de gestion de nulls c'est que tu t'attendais pas à en avoir un dans le coin) mais quelque part en amont à l'injection du null dans le runtime, et quand la NPE pète ben t'as aucune idée de la source du null en question.


 
justement la question c'est est ce que c'est prévu ou non.
est ce que la valeur null à une signification sémantique pour cette donnée.
si oui alors il n'y a pas de raison que tu ne fasses pas le test.

n°1905918
masklinn
í dag viðrar vel til loftárása
Posté le 16-07-2009 à 18:24:23  profilanswer
 

zapan666 a écrit :


 [:gordon shumway] j'ai cru avoir lu ce genre de point de vue dans un livre de python


L'utilisation des exceptions?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1905922
zapan666
Tout est relatif
Posté le 16-07-2009 à 18:29:02  profilanswer
 

masklinn a écrit :


L'utilisation des exceptions?


hum oui et non, mais plutôt faire :  
 

Code :
  1. try {
  2.    getMachin().doIt();
  3. } catch(Exception e) {
  4.    // bah il a pas de machin
  5. }


 
que  
 

Code :
  1. if(getMachin() != null) {
  2.     getMachin().doIt();
  3. }


---------------
my flick r - Just Tab it !
n°1905925
basketor63
Sarkozy en prison
Posté le 16-07-2009 à 18:31:54  profilanswer
 

sur un getter simple ouais, mais il faudrait pas que ça masque une exception d'un appel de méthode plus complexe

 

par exemple si t'as une npe imprévu dans ton doIt() tu voudrais sans doute pas que le catch la rattrape.


Message édité par basketor63 le 16-07-2009 à 18:33:29
n°1905927
masklinn
í dag viðrar vel til loftárása
Posté le 16-07-2009 à 18:32:04  profilanswer
 

zapan666 a écrit :


hum oui et non, mais plutôt faire :

 
Code :
  1. try {
  2.    getMachin().doIt();
  3. } catch(Exception e) {
  4.    // bah il a pas de machin
  5. }
 

que

 
Code :
  1. if(getMachin() != null) {
  2.     getMachin().doIt();
  3. }



Bah dans ce cas précis j'ai laissé la porte ouverte non seulement à toutes les fenêtres mais à la possibilité du 2e cas: il est parfaitement possible d'avoir un

Code :
  1. if(account.hasLivretA()) {
  2.    account.getLivretA().getBalance();
  3. }


 [:cosmoschtroumpf]

 

Mais sinon oui, EAFP est un principe important en Python :jap:

Message cité 1 fois
Message édité par masklinn le 16-07-2009 à 18:33:35

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1905930
basketor63
Sarkozy en prison
Posté le 16-07-2009 à 18:35:07  profilanswer
 

masklinn a écrit :


Bah dans ce cas précis j'ai laissé la porte ouverte non seulement à toutes les fenêtres mais à la possibilité du 2e cas: il est parfaitement possible d'avoir un

Code :
  1. if(account.hasLivretA()) {
  2.    account.getLivretA().getBalance();
  3. }


 [:cosmoschtroumpf]

 

Mais sinon oui, EAFP est un principe important en Python :jap:

 

avec bien sur un

 
Code :
  1. public boolean hasLivretA(){
  2.    return getMachin() != null;
  3. }


[:djmb]


Message édité par basketor63 le 16-07-2009 à 18:35:20
n°1905931
the real m​oins moins
Posté le 16-07-2009 à 18:35:30  profilanswer
 

basketor63 a écrit :

Code :
  1. public class CompteEnBanque {
  2.    public int getTuneSurCompteCourant() {
  3.      return tuneSurCompteCourant;
  4.    }
  5.    public int getTuneSurLivretA() {
  6.      return tuneSurLivretA;
  7.    }
  8. }
 

si t'as pas de livret A tu retournes -1 ? :D
c'est pas sympas, t'as pas de compte et t'es déjà à découvert :D

 

* c'est deux instances de Compte distinctes. Client { List<Compte> comptes; }
* thune, avec un h.
* Compte { public Thune getThune(); } Thune { double amount; Currency currency; }

Message cité 3 fois
Message édité par the real moins moins le 16-07-2009 à 18:35:40

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1905932
gizmo
Posté le 16-07-2009 à 18:38:03  profilanswer
 

the real moins moins a écrit :


 
* c'est deux instances de Compte distinctes. Client { List<Compte> comptes; }
* thune, avec un h.
* Compte { public Thune getThune(); } Thune { double amount; Currency currency; }


 
Figure 35: l'art de repondre a cote de la question.

n°1905933
masklinn
í dag viðrar vel til loftárása
Posté le 16-07-2009 à 18:38:12  profilanswer
 

the real moins moins a écrit :

 

* c'est deux instances de Compte distinctes. Client { List<Compte> comptes; }
* thune, avec un h.
* Compte { public Thune getThune(); } Thune { double amount; Currency currency; }


 [:fredouye]

basketor63 a écrit :

 

avec bien sur un

 
Code :
  1. public boolean hasLivretA(){
  2.    return getMachin() != null;
  3. }


[:djmb]


Pas nécessairement. Ca peut aussi être

Code :
  1. public boolean hasLivretA() {
  2.    return accounts.containsKey('livret A');
  3. }


ou

Code :
  1. public boolean hasLivretA() {
  2.    return !(livretA instanceof NoAccount);
  3. }


il y a des dizaines de possibilités pour gérer ce genre de cas en fonction de ton implémentation, du sens du vent et de ton utilisation du typesys


Message édité par masklinn le 16-07-2009 à 18:40:44

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1905937
basketor63
Sarkozy en prison
Posté le 16-07-2009 à 18:42:31  profilanswer
 

the real moins moins a écrit :

 

* c'est deux instances de Compte distinctes. Client { List<Compte> comptes; }
* thune, avec un h.
* Compte { public Thune getThune(); } Thune { double amount; Currency currency; }

 

oui bien sur c'est mieux
mais bon c'était juste un exemple
et bon là tu encapsules tout de même ton type primitif avec un objet [:djmb]
là il y a currency qui sauve l'exemple quoi, mais à une variable près t'écopes pas de l'encapsulation

 

enfin tu peux ne pas toucher à du code existant avec ton exemple, et juste ajouter des nouvelles classes de compte, c'est sur. :jap:

  
masklinn a écrit :


Pas nécessairement. Ca peut aussi être

Code :
  1. public boolean hasLivretA() {
  2.    return accounts.containsKey('livret A');
  3. }


ou

Code :
  1. public boolean hasLivretA() {
  2.    return !(livretA instanceof NoAccount);
  3. }


il y a des dizaines de possibilités pour gérer ce genre de cas en fonction de ton implémentation, du sens du vent et de ton utilisation du typesys

 

c'était un peu une boutade :D


Message édité par basketor63 le 16-07-2009 à 18:46:56
n°1905953
the real m​oins moins
Posté le 16-07-2009 à 20:35:14  profilanswer
 

gizmo a écrit :

 

Figure 35: l'art de repondre a cote de la question.


noooooon ? [:frag_facile]
(au passage, tu noteras que je ne fais que démonter un exemple qui ne tiens pas la route, pas répondre à une question)

Message cité 1 fois
Message édité par the real moins moins le 16-07-2009 à 20:36:21

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1905954
gizmo
Posté le 16-07-2009 à 20:40:56  profilanswer
 

the real moins moins a écrit :


noooooon ? [:frag_facile]  
(au passage, tu noteras que je ne fais que démonter un exemple qui ne tiens pas la route, pas répondre à une question)


C'est bien ce que je te "reproche". J'osais estimer que dans le topic estampillé "ELITE", on était au-dessus des puerilités des topic "blabla".

n°1905961
the real m​oins moins
Posté le 16-07-2009 à 21:13:25  profilanswer
 

[:everything4free]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1905962
the real m​oins moins
Posté le 16-07-2009 à 21:15:28  profilanswer
 

(d'un coté j'ai envie de te demander d'aller te faire foutre, d'un autre, je voudrais bien t'expliquer que je vois pas comment on pourrait débattre d'un problème en se basant sur un example qui ne montre pas le problème à la base)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1905963
gizmo
Posté le 16-07-2009 à 21:16:53  profilanswer
 

En se basant sur un principe simple, l'abstraction.

n°1905964
the real m​oins moins
Posté le 16-07-2009 à 21:25:08  profilanswer
 

[:everything4free]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1906106
Jubijub
Parce que je le VD bien
Posté le 17-07-2009 à 11:07:09  profilanswer
 

PQ collectif, votre dernière page est très bien :)
 


---------------
Jubi Photos : Flickr - 500px
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  255  256  257  ..  327  328  329  330  331  332

Aller à :
Ajouter une réponse
 

Sujets relatifs
[java]Ouvrir un fichier dans la fenetre principaleformation pour developpeurs Java
crontab : programme java[JAVA] Aide pour packager un jar
[java] copie de fichier et progressbarinstallation java
[JAVA]Comment insérer un texte dans un fichier audio?[JAVA] Intégrer ANT : API ou ligne de commande ?
[Java][Bouley]Serializable : mauvaise instanciation des champs[JAVA : JNI] Pb a l'execution avec library
Plus de sujets relatifs à : BlaBlaTech@JAVA [ELITE, viendez les boobs]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)