gpt4 book ai didi

java - 将泛型与 Jakarta 公共(public)集合缓冲区一起使用

转载 作者:行者123 更新时间:2023-12-02 08:38:08 25 4
gpt4 key购买 nike

此代码在 Java <= 1.4 中编译良好。 Java 1.6 的提示和警告:

“方法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 接口(interface)。

最佳答案

你不能。在 Jakarta Commons 支持泛型之前(他们可能不会,因为他们也希望能够在较旧的 Java 版本上构建),您需要抑制(或接受)该警告。

作为替代方案,有 fork of Commons Collections that supports generics ,和Google also has a Collections library 。不过,我还没有检查它们是否有缓冲区,这需要您切换 API。

如果您的代码没有使用 1.4 后的语言功能,您可以将编译器的语言级别设置为“1.4”,但这似乎更不可行(或不可取)。

可能只是坚持使用@SupressWarnings。

关于java - 将泛型与 Jakarta 公共(public)集合缓冲区一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/754339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com