Я хочу иметь некоторую карту, которая содержит либокак пройти в карты неизвестной структуры/типа
<String, String>
<String, Map<String, String>>
<String, Map<String, String[]>>
До сих пор я следующее:
Map<String, ?> any = new HashMap<String, ?>();
Когда я получить значения I хотите сделать что-то вроде значений valueof String [], но это не работает, потому что генерические элементы удаляются во время выполнения. Является ли способ, которым я неправильно отношусь к случайной структуре?
Какие существуют жизнеспособные варианты. В настоящее время я пытаюсь сделать что-то вроде.
values.get(0) instanceof String[]
Чувства ... неправильный, любой вход?
EDIT: У меня есть карта для каждого типа структуры JSon Я хочу иметь дело с как Java Bean
class JAVABEAN{
Map<String, String[]> structure1;
Map<String, Map<String, String>> structure2;
Map<String, ?> anyStructure;
}
anyStructure может иметь либо structure1 или структуре2 в нем, он содержит любую комбинацию (я больше чем 2 структуры в моем фактическом проекте).
Основываясь на карте детали в, я называю различные методы для обработки данных ..
for(each item in javabean)
if structure1, call method1..
if structure2, call method2..
if anyStructure, call method1 or method2
Иногда anyStructure не будет использоваться на всех, но всегда будет по крайней мере 1 structure1 или structure2
EDIT2: Это услуга, называемая службой отдыха, которая в настоящее время занимается json. Я принимаю json, который превращается в java для меня через трикотаж, я считаю, что json должен быть простым для этого преобразования (без интерфейсов), поэтому я использую Map вместо чего-то вроде RangeQuery, который будет иметь String и String [] член.
Вам нужно будет использовать «Map» и 'instanceof', но это, вероятно, плохой дизайн. Может быть, если бы вы рассказали нам о проблеме, которую пытаетесь решить, мы можем предложить лучший способ приблизиться к ней. –
Radiodef
Если ваши значения не имеют общего интерфейса, а их единственным общим предком является Object, все, что вы можете сделать, это использовать «Map» и использовать 'instanceof'. Вероятно, вы должны перенести значения в некоторые классы адаптеров, которые имеют общий интерфейс. –
Почему вы хотите хранить эти разные виды карт в одном месте? Что вы можете сделать со всеми этими различными видами данных? Похоже, что они должны храниться по-разному и рассматриваться по-разному. –