此代码在Java
“方法add(Object)属于原始类型Collection。应该对通用类型Collection的引用进行参数设置”

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 Buffer是非通用的,但是扩展了通用的java.util.Collection接口。

最佳答案

你不能。在Jakarta Commons支持泛型之前(由于它们也希望能够在较旧的Java版本上构建,因此不会提供泛型),您需要取消警告(或忍受该警告)。

或者,有一个fork of Commons Collections that supports genericsGoogle also has a Collections library。我还没有检查它们中是否有一个Buffer,它需要您切换API。

如果您的代码均未使用1.4版后的语言功能,则可以将编译器的语言级别设置为“ 1.4”,但这似乎不太可行(或不理想)。

可能只是坚持使用@SupressWarnings。

关于java - 在Jakarta Commons Collections缓冲区中使用泛型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/754339/

10-13 06:46