Java从Object转换为long to String

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)

有关如何解决这个问题的任何建议吗?

fge*_*fge 5

例如,使用:

String.valueOf(map.get("id"))
Run Code Online (Sandbox Code Playgroud)

问题是您尝试将对象强制转换为基本类型.那不行.

但是由于地图的值Long无论如何都是s(集合不能包含原始类型,除了GNU Trove中的专门实现),请看@ BheshGurung的答案......


Bhe*_*ung 5

你可以这样做

String str = map.get("id").toString();
Run Code Online (Sandbox Code Playgroud)