Mas*_*eek 1 java string casting object long-integer
在这种情况下,我在Map中有一个Object,我明确知道它包含一个Long实例,我需要将该值转换为字符串,但不断出现不兼容的类型错误.这是我的代码的样子:
Map<String, Object> map = ...;
Object obj = new Long(31415L);
String str = Long.valueOf((long)map.get("id")); //Problem line
Run Code Online (Sandbox Code Playgroud)
这给出了:
Inconvertible types.
Found : java.lang.Object
Required: long
Run Code Online (Sandbox Code Playgroud)
有关如何解决这个问题的任何建议吗?
例如,使用:
String.valueOf(map.get("id"))
Run Code Online (Sandbox Code Playgroud)
问题是您尝试将对象强制转换为基本类型.那不行.
但是由于地图的值Long无论如何都是s(集合不能包含原始类型,除了GNU Trove中的专门实现),请看@ BheshGurung的答案......