De la généralisation de valueOf()

De la généralisation de valueOf() - Java - Programmation

Marsh Posté le 29-03-2004 à 08:21:49    

on dirait que valueOf(String) (l'inverse de toString()) est appelée à se généraliser en java. un signe ?

Code :
  1. public Object getItem() {
  2.               Object newValue = editor.getText();
  3.              
  4.               if (oldValue != null && !(oldValue instanceof String))  {
  5.                     // The original value is not a string. Should return the value in it's
  6.                     // original type.
  7.                     if (newValue.equals(oldValue.toString()))  {
  8.                           return oldValue;
  9.                       } else {
  10.                           // Must take the value from the editor and get the value and cast it to the new type.
  11.                           Class cls = oldValue.getClass();
  12.                           try {
  13.                                 Method method = cls.getMethod("valueOf", new Class[]{String.class});
  14.                                 newValue = method.invoke(oldValue, new Object[] { editor.getText()});
  15.                             } catch (Exception ex) {
  16.                                 // Fail silently and return the newValue (a String object)
  17.                           }
  18.                     }
  19.               }
  20.               return newValue;
  21.         }


(tiré de)
http://forum.hardware.fr/hardwaref [...] tm#t686142
l'éditeur générique tente de convertir la chaîne de caractères en objet avant de renvoyer la chose.
 
est-ce là le signe d'un remord de ne pas avoir mis valueOf() dans Object ? Ou alors il est temps de "génériciser" swing ...
 
 
edit : pour moduler un peu mon propre propos, c'est le seul appel optionnel de ce type qui est dans swing. Il est vrai que les autres éditeurs (de Tree ou de Table) fonctionnent différement.


Message édité par nraynaud le 29-03-2004 à 08:29:45

---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 29-03-2004 à 08:21:49   

Reply

Marsh Posté le 29-03-2004 à 15:11:34    

Je précise pour ceux qui seraient trop fainéants pour ouvrir le lien (comme moi :o ) : il s'agit du source de la classe BasicComboBoxEditor dans Swing

Reply

Sujets relatifs:

Leave a Replay

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