fucking final classe [java] - Programmation
Marsh Posté le 18-02-2002 à 18:17:46
question de sécurité je suppose
Marsh Posté le 18-02-2002 à 18:20:00
darklord22 a écrit a écrit : question de sécurité je suppose |
de sécurité ?? quel rapport ??
Marsh Posté le 18-02-2002 à 18:39:59
peut-etre est-elle consideree
comme un type natif par la JVM..
LEGREG
Marsh Posté le 18-02-2002 à 18:43:57
legreg a écrit a écrit : peut-etre est-elle consideree comme un type natif par la JVM.. |
je trouve que c'est une sacré limitation pour le langage ! C'est vraiment dommage d'avoir fait ca !
Marsh Posté le 18-02-2002 à 18:59:24
ca a des avantages:
traitement probablement plus rapide
possibilite d'avoir une surcharge
des operateurs = et +:
assignation: String machaine = "toto";
concatenation:
String machaine3 = machaine1 + machaine2;
Bon ca a des contraintes comme le fait
que les chaines sont immuables (on fait des
operations sur des chaines mais on ne modifie
pas des chaines qui ont une representation
constante en memoire).
Je pense que tu devrais regarder du cote
de StringBuffer.
A+
LEGREG
Marsh Posté le 18-02-2002 à 19:26:31
mais ils auraient pu laisser la classe héritable en gardant les même avantages : il suffisait de mettre les attribut en private : la classe héritante n'aurait accès qu'au méthodes publiques et n'aurait donc pas pu modifier la valeur de la String ... mais juste étendre ses possibilités (nouveau constructeurs, etc ...)
Marsh Posté le 18-02-2002 à 19:29:54
J'pense de mon côté qu'ils voulaient en faire une sorte de type primitif. Un peu comme un int : ça se manipule bien, c'est simple et immuable. Un type très stable en somme, sans que n'importe quel petit malin arrive avec ses gros sabots et propose sa String perso.
Marsh Posté le 18-02-2002 à 19:34:12
ReplyMarsh Posté le 18-02-2002 à 20:15:22
ReplyMarsh Posté le 18-02-2002 à 20:54:35
sauf que là c'est sun qui a fait le langage. C'est eux qui ont fait ce choix. Ils doivent avoir une bonne raison !
Marsh Posté le 18-02-2002 à 20:58:42
as tu regarde stringbuffer?
C'est une string mais mutable.
LEGREG
Marsh Posté le 18-02-2002 à 21:21:56
oui je connais les StringBuffer. (quand même )
Mais mon but c'est pas de modifier la valeur d'une chaine de caractère ...
je veux connaître la raison de ce choix qui me parait absurde !
Marsh Posté le 18-02-2002 à 21:35:22
Des raisons de performance sans doute.
http://www.usenix.org/publications [...] jperf.html
Marsh Posté le 18-02-2002 à 21:39:26
merci pour le lien très intéressant !
Tu as surement raison, ca doit être la raison ...
mais c'est quand même bien dommage !!!
Marsh Posté le 19-02-2002 à 00:28:20
on peut contourner le fait qu'une classe soit finale en l'encapsulant dans une autre, malheureusement impossible d'utiliser une instance de cette nouvelle classe avec le type de l'ancienne, ce qui limite énormément l'intérêt de la manip finalement ...
Marsh Posté le 19-02-2002 à 00:30:53
c_po_ma_faute a écrit a écrit : on peut contourner le fait qu'une classe soit finale en l'encapsulant dans une autre, malheureusement impossible d'utiliser une instance de cette nouvelle classe avec le type de l'ancienne, ce qui limite énormément l'intérêt de la manip finalement ... |
ben oui. le but c'est d'utiliser le polymorphisme, sinon ca pert tout son intérêt ...
Marsh Posté le 19-02-2002 à 01:51:19
le polymorphisme sur un type immuable
pourquoi cela?
(vraie question:
je n'ai surement pas saisi la moitie de ton
probleme)
A+
LEGREG
Marsh Posté le 19-02-2002 à 08:40:47
et bien tu pourrais utiliser cette sous-classes de String de la même façon qu'une String...
immaginons une sous-classe UpperString qui représente une chaine de caractère toujours en majuscule. On pourrait utiliser cette classe partout où String est utilisé actuellement... là ce n'est pas possible.
Marsh Posté le 18-02-2002 à 17:59:56
Fait chier : je viens de voir que la class java.lang.String est finale : pas moyen de faire une classe qui l'étend.
Pkoi ils ont fait ca ??? c'est super chiant !
doit y avoir une raison à laquelle je pense pas. Vous avez une idée ?
---------------
ma vie, mon oeuvre - HomePlayer