Java从Object转换为long to String

时间:2013-06-14 18:22:50

标签: java string object casting long-integer

在这种情况下,我在Map中有一个Object,我明确知道它包含一个Long实例,我需要将该值转换为字符串,但不断出现不兼容的类型错误。这是我的代码的样子:

Map<String, Object> map = ...;
Object obj = new Long(31415L);
String str = Long.valueOf((long)map.get("id")); //Problem line

这给出了:

Inconvertible types.
Found   : java.lang.Object
Required: long

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

4 个答案:

答案 0 :(得分:5)

使用,例如:

String.valueOf(map.get("id"))

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

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

答案 1 :(得分:5)

你可以做到

String str = map.get("id").toString();

答案 2 :(得分:0)

 You can use the toString function;  

 public String toString() {
    return String.valueOf(map.get("id"))
 }



    String str = map.get("id").toString();

答案 3 :(得分:0)

这里有2个问题:

  1. 您创建了一个* L * ong,而不是* l * ong。因此,您需要转回* L * ong,而不是* l * ong。

  2. 为了获得* L * ong的字符串表示,你必须在其上调用toString()。

  3. 使用此: String str = ((Long)map.get("id")).toString();