我想要一些包含
的Map<String, String>
<String, Map<String, String>>
<String, Map<String, String[]>>
到目前为止,我有以下内容:
Map<String, ?> any = new HashMap<String, ?>();
当我检索值时,我想要执行类似值instanceof String []的操作,但这不起作用,因为在运行时删除了泛型。我处理随机结构的方式不正确吗?
有哪些可行的选择。我目前正在尝试做类似的事情。
values.get(0) instanceof String[]
感觉有点......错了,有什么输入?
编辑:我有一个我希望作为java bean处理的每种类型的json结构的映射
class JAVABEAN{
Map<String, String[]> structure1;
Map<String, Map<String, String>> structure2;
Map<String, ?> anyStructure;
}
anyStructure可以包含structure1或structure2,它包含任何组合(我的实际项目中有2个以上的结构)。
根据项目所在的地图,我调用了不同的方法来处理数据..
for(each item in javabean)
if structure1, call method1..
if structure2, call method2..
if anyStructure, call method1 or method2
有时任何结构都不会被使用,但总会有至少1个structure1或structure2
EDIT2:这是一项从休息服务调用的服务,该服务当前处理json。我接受了一个通过jersey转换为java的json,我相信json必须对这个转换很简单(没有接口)这就是为什么我使用Map而不是像RangeQuery这样会有String和String []的东西构件。
答案 0 :(得分:4)
好的,我看到了你的问题。 只需使用JSON库。 Gson或Jackson。使用JSON对象将它们保持在一起,而不是试图将JSON分解为表面上的Java等价物,Map<String, Map<String, String[]>[]
和这种复杂的废话。