使用 LinkedHashMap 中的单元格格式化程序将数值转换为相应的标签

Translate numeric value to it's corresponding label using cell formatter from LinkedHashMap

我正在尝试使用网格 (PaginatedGrid) 中列上的键来显示 LinkedHashMap 中的值。

在网格中,我尝试将 public String format() 中的值转换为 short。

在网格中,以下是我试过的代码

grid.getField(MerchandiseSellerTargetsDS.FLD_TARGETTYPE).setCellFormatter(new CellFormatter() {

            @Override
            public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
                short messageValue = ((Integer) value).shortValue();
                return Messages.targetTypeMap.get(messageValue);
            }
        }); 

在Messages.java

public static LinkedHashMap<Number, String> targetTypeMap;

targetTypeMap=new LinkedHashMap<>();
        targetTypeMap.put((short)1,"Value");
        targetTypeMap.put((short)2,"Unit");

我希望使用地图中的值填充该列,例如如果键为 1,则显示 "Value",如果为 2,则显示 "Unit"。但是,该列未填充(执行时显示为空白)。我可能做错了什么还是我的投射方式?

好吧,问题在于我的选角方式。在这里,我将值转换为字符串,然后将其转换为 Short 类型

grid.getField(MerchandiseSellerTargetsDS.FLD_TARGETTYPE).setCellFormatter(new CellFormatter() {         
    @Override
    public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
        short targetTypeMapKey = Short.valueOf((String)value);
        return Messages.targetTypeMap.get(targetTypeMapKey);
    }
    });