我有一个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
返回该对象。
答案 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
。由于类型擦除而导致的不幸,你无法在运行时获得该类型,因此了解预期结果的唯一方法就是一些文档。