public class Test {
private Table table;
Map<Byte, Integer> b2i = new HashMap<Byte, Integer>();
private String strName = "aaaaa";
public void b2iInit() {
b2i.put((byte) 0x80, 2);
b2i.put((byte) 0x40, 3);
b2i.put((byte) 0x20, 4);
b2i.put((byte) 0x10, 5);
b2i.put((byte) 0x08, 6);
b2i.put((byte) 0x04, 7);
b2i.put((byte) 0x02, 8);
b2i.put((byte) 0x01, 9);
}
public void setData(byte[] data) {
for (int i = 0; i < data.length; i++) {
if (i > table.getItemCount() - 1) {
break;
}
TableItem item = table.getItem(i);
item.setText(1, toHexString(new byte[] { data[i] }) + "H");
disposeItem(item);
}
}
public void disposeItem(TableItem item, Integer i) {
for (Map.Entry<Byte, Integer> entry : b2i.entrySet()) {
if ((data[i] & entry.getKey()) != 0) {
item.setText(entry.getValue(), item.getText(entry.getValue()));
} else {
item.setText(entry.getValue(), strName
+ item.getText(entry.getValue()));
}
}
}
}
想获取b2iInit里对应的每个byte,然后和data[i] 进行判断,现在
到for (Map.Entry<Byte, Integer> entry : b2i.entrySet()) {}时,代码就不进里面的处理了,