2016-09-30 11 views
0

Я изучаю Javapoet в качестве кандидата для некоторых автоколлекций объектов модели протокола. Grat API!Javapoet - TypeName - HashMap <String, HashMap <String, List <String> >> генерация?

вопрос: Могу ли я создать поле сложного типа, например:

TypeName myType = HashMap<String, HashMap<String, List<String>>>; ?

Например, если я хочу, чтобы получить более простую TypeName: "HashMap < String, String>" - я могу легко достичь через:

ParameterizedTypeName.get (Map.class, String.class, String .класс);

Спасибо заранее!

ответ

0

java.lang.IllegalArgumentException: индекс 6 для '$ ​​T' не в диапазоне (получено 5 аргументов)

Таким образом, вы не можете сгенерировать тьфу

1

import java.util.ArrayList \t ; 
 
import java.util.HashMap; 
 
import java.util.List; 
 
import java.util.Set; 
 

 
public class EX1 { 
 
\t public static void main(String[] args) { 
 

 
\t HashMap<String,HashMap<String,List>>outerhashmap=new HashMap<>(); 
 
\t HashMap<String,List>innerhashmap=new HashMap<>(); 
 
\t List l=new ArrayList(); 
 
\t l.add("shine"); 
 
\t l.add("unicorn"); 
 
\t l.add("twister"); 
 
\t l.add("twister"); 
 
\t List l1=new ArrayList(); 
 
\t l1.add("passon"); 
 
\t l1.add("splender"); 
 
\t l1.add("karizma"); 
 
\t 
 
\t innerhashmap.put("HONDA", l); 
 
\t innerhashmap.put("HERO", l1); 
 
\t 
 
\t outerhashmap.put("BIKE", innerhashmap); 
 
\t 
 
\t for(HashMap.Entry<String, HashMap<String,List>>entry:outerhashmap.entrySet()){ 
 
\t \t String keys=entry.getKey(); 
 
\t \t HashMap<String, List> values=entry.getValue(); 
 
\t \t System.out.println(keys+"======="+values); 
 
\t } 
 
\t \t } 
 
}