本测试类是为了演示netty 4.1.9 版本中的DefaultAttributeMap的用法,至于DefaultAttributeMap内部数据结构解析改天再完善,主要现在有急事,粘贴完我就走人。
package com.lihong.DDPush; import io.netty.util.Attribute; import io.netty.util.AttributeKey; import io.netty.util.DefaultAttributeMap; import org.junit.Test; /** * Created by lihong10 on 2017/5/27. */ public class AttributeTest { @Test public void testAttributeKey() { System.out.println(Integer.toBinaryString(-1)); AttributeKey<String> key1 = AttributeKey.newInstance("aa"); AttributeKey<String> key2 = AttributeKey.newInstance("bb"); AttributeKey<String> key3 = AttributeKey.newInstance("cc"); AttributeKey<String> key4 = AttributeKey.newInstance("dd"); AttributeKey<String> key5 = AttributeKey.newInstance("ee"); AttributeKey<String> key6 = AttributeKey.newInstance("ff"); AttributeKey<String> key7 = AttributeKey.newInstance("gg"); DefaultAttributeMap map = new DefaultAttributeMap(); Attribute<String> attr1 = map.attr(key1); Attribute<String> attr2 = map.attr(key2); Attribute<String> attr3 = map.attr(key3); Attribute<String> attr4 = map.attr(key4); Attribute<String> attr5 = map.attr(key5); Attribute<String> attr6 = map.attr(key6); Attribute<String> attr7 = map.attr(key7); System.out.println(attr1.getClass()); attr1.set("aa-value"); attr2.set("bb-value"); attr3.set("cc-value"); attr1.remove(); Attribute<String> attr1_1 = map.attr(key1); attr1_1.set("aa-new-value"); System.out.println(map.hasAttr(key1)); System.out.println(1&3); System.out.println(2&3); System.out.println(3&3); System.out.println(4&3); System.out.println(5&3); System.out.println(6&3); System.out.println(7&3); System.out.println(map.hasAttr(key1)); System.out.println(map.hasAttr(key2)); System.out.println(map.hasAttr(key3)); System.out.println(map.hasAttr(key4)); System.out.println(map.hasAttr(key5)); System.out.println(map.hasAttr(key6)); System.out.println(map.hasAttr(key7)); } }