将对象转换为数组[Java]?

时间:2017-03-21 17:12:15

标签: java arrays object

我有一个Object (Object o)当我打电话给o.toString()时会打印出来:

{data-ved=0EMIuCBcoAA, data-pid=23, href=https://mail.google.com/mail/?tab=wm, class=gb_P}

正如您所看到的,此对象中似乎有一个字符串数组。有没有办法直接将对象转换为String []?

预期的结果是String [],其中包含:

data-ved=0EMIuCBcoAA
data-pid=23
href=https://mail.google.com/mail/?tab=wm
class=gb_P

目前,我正在使用Regex来提取我需要的字符串部分(作为数组)。

有更好的方法吗?

如果重要,则会从JavaScript Executor中的Selenium返回该对象。

1 个答案:

答案 0 :(得分:0)

从注释轨迹中可以看出,返回的对象似乎是Map(可能是Map<String, Object>Map<String, String>)。因此,您可以执行以下操作:

if( o instanceof Map ) {
  Map map = (Map)o; //If you know the generic type you could use Map<String, Object> etc. instead
  String dataVed = (String)map.get("data-ved");
  ...
}

正如您所看到的那样,还需要转换值,因为没有为地图提供通用类型,因此您所知道的是键和值是任何类的对象。

如果你知道应该使用哪种泛型类型,你可以改进它,特别是如果值类型是String。由于类型擦除而导致的不幸,你无法在运行时获得该类型,因此了解预期结果的唯一方法就是一些文档。