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

 


Dernière réponse
Sujet : [java] fucking final classe
benou 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.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
benou 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.
LeGreg le polymorphisme sur un type immuable
pourquoi cela?
(vraie question:
je n'ai surement pas saisi la moitie de ton  
probleme)
 
A+
LEGREG
benou

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

C_Po_Ma_Faute 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 ... :(
benou 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 !!! :(
Da True Clouseau Des raisons de performance sans doute.
http://www.usenix.org/publications [...] jperf.html
benou 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 !
LeGreg as tu regarde stringbuffer?
C'est une string mais mutable.
 
LEGREG
benou 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 !
Cherrytree Bill Gates aussi. Et pourtant, pourtant !
benou :gun: ca va à l'encontre de la pensée objet !!!!!
Cherrytree 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.
benou 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 ...)
LeGreg 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
benou

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 !

LeGreg peut-etre est-elle consideree
comme un type natif par la JVM..
 
LEGREG
benou

darklord22 a écrit a écrit :

question de sécurité je suppose  




de sécurité ?? quel rapport ??

darklord22 question de sécurité je suppose
benou 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 ?

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