Netty AttributeKey - 无法推断AttributeKey的类型参数<>

时间:2014-08-07 19:03:37

标签: java netty

我之前使用过这个,所以我不知道为什么这不起作用。考虑一下这段代码

public class NioServer implements Runnable {

    private EventLoopGroup group;
    private ServerBootstrap b;

    public static final AttributeKey<Session> SESSION_KEY = new AttributeKey<>("SessionHandler.attr");

    @Override
    public void run() {
    group = new NioEventLoopGroup();
    b = new ServerBootstrap();
    b.group(group)
        .channel(NioServerSocketChannel.class)
        .localAddress(435)
        .childOption(ChannelOption.SO_KEEPALIVE, true)
        .childOption(ChannelOption.TCP_NODELAY, true)
        .childHandler(new ChannelInitializer<SocketChannel>() {

            @Override
            protected void initChannel(SocketChannel ch) throws Exception {
            ch.pipeline().addLast("Session Handler", new SessionHandler());
            }

        });
    }

}

AttributeKey SESSION_KEY不想工作并提供错误:

  

&#34;无法推断AttributeKey的类型参数&lt;&gt;原因:无法推断   type-variable(s)T(实际和形式参数列表的长度不同)   其中T是一个类型变量:T扩展在类中声明的Object   AttributeKey&#34;

我不明白......我错过了什么吗?没有其他问题,但是其他问题以这种方式成功使用了AttributeKey。

功能

  • Netty 4.1.0 - netty-all-4.1.0.Beta1.jar
  • JDK 1.8

更新

好的,所以我已将版本降级为4.0.21 Final,显然AttributeKey<>("")已被弃用,但我找不到任何有关此内容的更多信息。任何人都知道4.1.0版本中替换/替换它的人吗?顺便说一句,它适用于4.0.21 Final

1 个答案:

答案 0 :(得分:1)

好的。引用用户&#39; Mics&#39;:

  

简短回答:netty 4.1中没有AttributeKey(字符串),使用   AttributeKey.valueOf(字符串)。附加信息:   github.com/netty/netty/issues/1824

感谢您的回答。