2009-04-16 3 views
0

Ce code compile bien en Java < = 1.4. Java 1.6 chiennes et des gémissements avec l'avertissement:Utilisation de génériques avec les collections jakarta commons Buffer

« La méthode add (Object) appartient à la collection de type cru Références à la collecte de type générique devrait être paramétrés. »

import org.apache.commons.collections.Buffer; 
import org.apache.commons.collections.BufferUtils; 
import org.apache.commons.collections.buffer.UnboundedFifoBuffer; 

private Buffer connectqueue = BufferUtils.blockingBuffer(new UnboundedFifoBuffer()); 

... 

connectqueue.add(new Conn(this, address, port)); 

Comment puis-je optimiser le code faire disparaître cet avertissement sans ajouter de directive @SupressWarnings? Le problème est que Jakarta Commons Collections Buffer n'est pas générique, mais étend l'interface générique java.util.Collection.

Répondre

2

Vous ne pouvez pas. Jusqu'à ce que Jakarta Commons prenne en charge les génériques (ce qui ne sera probablement pas le cas, car ils veulent aussi pouvoir utiliser des versions plus anciennes de Java), vous devez supprimer (ou accepter) l'avertissement. En variante, il existe un fork of Commons Collections that supports generics et un Google also has a Collections library. Je n'ai pas vérifié si l'un d'eux a un tampon, cependant, et il faudrait que vous changiez d'API.

Si aucun code n'utilise les fonctionnalités post-1.4, vous pouvez définir le niveau de langue du compilateur sur "1.4", mais cela semble encore moins réalisable (ou souhaitable).

Probablement simplement s'en tenir à @SupressWarnings.

Questions connexes