将整数转换为String

时间:2016-06-13 09:50:12

标签: java exception

我得到像这样的例外:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

int idStation = Integer.parseInt((String) Stations.get(0));

此行正在施放异常。我做了很多次这样的事情并且很好。 “Stations”是一个ArrayList。

1 个答案:

答案 0 :(得分:2)

如果您有ArrayList<Object>,则需要将值设为字符串才能调用Integer.parseInt

转换为String实际上并没有将对象更改为String:它只是对编译器说“信任我,我知道这个引用实际上是String”。因此,如果它已经是String的实例,它将仅在运行时工作。

toString方法是获取对象的字符串表示的一般方法。所以,在调用parseInt之前调用它:

Integer.parseInt(Stations.get(0).toString())

如果Stations.get(0)已经是Integer,那就太浪费了。但为了回报这种浪费,你会得到普遍性。你可以检查对象是否是Number;你需要权衡它的冗长程度与它可能提供或不提供的任何效率改进:

Object station = Stations.get(0);
int idStation = (station instanceof Number) ?
                    ((Number) station).intValue() :
                    Integer.parseInt(station.toString();