• [^] # Re: Intéressant

    Posté par . En réponse à la dépêche Sortie d'une première version stable de Go. Évalué à 3. Dernière modification le 13 avril 2012 à 09:08.

    J'ai regardé un peu plus en détail Apache Commons (par rapport à Guava de Google) et il me semble qu'elle est un peu poussiéreuse (j'utilise surtout commons-lang d'habitude). Le guide utilisateur de commons io présente des cas qui ne sont plus d'actualités. Le premier exemple :

    InputStream in = new URL( "http://jakarta.apache.org" ).openStream();
    try {
     InputStreamReader inR = new InputStreamReader( in );
     BufferedReader buf = new BufferedReader( inR );
     String line;
     while ( ( line = buf.readLine() ) != null ) {
     System.out.println( line );
     }
    } finally {
     in.close();
    }
    
    

    Peut depuis longtemps s'écrire :

    InputStream in = new URL( "http://jakarta.apache.org" ).openStream();
    try {
     Scanner sc = new Scanner(in);
     while ( sc.hasNextLine() ) {
     System.out.println( sc.nextLine() );
     }
    } finally {
     if (in != null) {
     in.close();
     }
    }
    
    

    C'est certes toujours plus long que leur solution, mais elle perd de l'intérêt. Ça rend vraiment inutile leur line iterator qui est moins puissant que le Scanner (ce dernier peut gérer les String, les Integer, les Long, etc).

    De plus Apache Commons Collections n'utilise pas les templates. Je présume qu'elle a était écrite pour Java 1.4 ou qu'elle cherche à garder la compatibilité Java 1.4, mais c'est dommage lorsque l'on voit ce que peut apporter l'héritage avec guava.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)