2009-04-16 6 views
0

このコードはJavaでうまくコンパイルされます< = 1.4。 Javaの1.6愚痴と警告してうめき声:ジャカルタコモンズコレクションでジェネリックを使用するバッファ

「方法は、(Object)を追加し、生タイプのコレクションに属しているジェネリック型コレクションへの参照は、パラメータ化されなければならない。」

私は、コードを微調整するにはどうすればよい
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)); 

@SupressWarningsディレクティブを追加せずに警告を消してしまいますか?

問題はJakarta Commons Collectionsです。バッファは汎用ではありませんが、汎用のjava.util.Collectionインターフェイスを拡張しています。

答えて

2

できません。ジャカルタコモンズがジェネリックをサポートするまでは、古いJavaバージョンでもビルドできるようにするために、ジェネリックはサポートしていないので、警告を表示しないようにする必要があります。

代替として、fork of Commons Collections that supports genericsおよびGoogle also has a Collections libraryがあります。私はどちらかがバッファを持っているかどうかはチェックしていませんが、APIを切り替える必要があります。

1.4以降の言語機能を使用していないコードがある場合は、コンパイラの言語レベルを「1.4」に設定できますが、これは実行可能性が低い(または望ましい)と思われます。

おそらく@SupressWarningsを付けてください。もし上記のように、

関連する問題