如何创建以下内容:
HashMap<String, Pair<Boolean, Object>> mHashMap = new HashMap();
我有以下内容:
ParameterizedTypeName subType = ParameterizedTypeName.get(Pair.class, Boolean.class, Object.class);
ParameterizedTypeName mainType = ParameterizedTypeName.get(HashMap.class, String.class, Pair.class);
builder.addField(
FieldSpec.builder(mainType, "mHashMap", Modifier.PRIVATE, Modifier.FINAL)
.initializer("new HashMap<>()")
.build()
);
现在如何将
subType
与mainType
组合以获得正确的mainType
?我需要以下内容:
ParameterizedTypeName mainType = ParameterizedTypeName.get(HashMap.class, String.class, subType);
最佳答案
这样的事情应该起作用:
ParameterizedTypeName subType = ParameterizedTypeName.get(Pair.class,
Boolean.class,
Object.class);
ClassName string = ClassName.get("java.lang",
"String");
ClassName hashMap = ClassName.get("java.util",
"HashMap");
ParameterizedTypeName mainType = ParameterizedTypeName.get(hashMap,
string,
subType);
FieldSpec.builder(mainType,
"mHashMap",
Modifier.PRIVATE,
Modifier.FINAL)
.initializer("new HashMap<>()")
.build();
上面的代码应生成:
private final HashMap<String, Pair<Boolean, Object>> mHashMap = new HashMap<>();
希望能有所帮助。