我有一张地图Object value = dd.get("22 ");
。键在字符串的末尾包含正确值后的空格。所以当我使用
value = dd.get("22");
或
Toast.makeText(getContext(), value.toString() , Toast.LENGTH_LONG).show()
带有空格或不带空格的返回null。如果我使用
if (wfStepExDetails.isPresent()) {
this.postInterruptActionsExecutor.takeActionAfterWFInterrupted(wfStepExDetails.get(), this.pAccId, interrupts, this.workflowStepDefinition);
}
因为该值为空,它使我的应用程序崩溃。
答案 0 :(得分:0)
我给出了以下示例,只是为了向您展示问题不是空格:
Map<String, Float> myMap = new HashMap<>();
myMap.put("1", 1f);
myMap.put("1 ", 2f);
Float f1 = myMap.get("1"); // f1: 1.0
Float f2 = myMap.get("1 "); // f2: 2.0
不出所料,我没有得到任何空值。因此问题一定在其他地方。我的猜测:地图中没有您所要求的值。
为防止您的应用崩溃,我建议您检查该值是否为null,如果为空,则将其替换为其他值。
Toast.makeText(getContext(), value == null ? "-" : value.toString() , Toast.LENGTH_LONG).show()