在JCodeModel中实例化字段级HashMap
我想在JCodeModel中一次性声明并实例化一个HashMap 我有:在JCodeModel中实例化字段级HashMap,jcodemodel,Jcodemodel,我想在JCodeModel中一次性声明并实例化一个HashMap 我有: jc.field(JMod.PRIVATE, HashMap.class, "initAttributes"); 它声明了它,但没有实例化它。如何实例化它 感谢在最简单的情况下,您可以直接将初始化附加到字段的创建中: jc.field(JMod.PRIVATE, HashMap.class, "initAttributes") .init(JExpr._new(codeModel.ref(HashMap.clas
jc.field(JMod.PRIVATE, HashMap.class, "initAttributes");
它声明了它,但没有实例化它。如何实例化它
感谢在最简单的情况下,您可以直接将初始化附加到字段的创建中:
jc.field(JMod.PRIVATE, HashMap.class, "initAttributes")
.init(JExpr._new(codeModel.ref(HashMap.class)));
还有一些提示:
- 考虑到您通常应该这样做,最好使用“尽可能基本”的类型来声明变量。您几乎不应该将变量声明为
但基本上总是这样private HashMap map;
因为private Map map;
是与此相关的接口Map
- 您还可以在JCodeModel中添加泛型。这些通常涉及对某些类型的
的一些调用。这需要花费更多的精力,但它将生成可以编译的代码,而不会由于原始类型而导致警告shown
String
作为键类型,使用Integer
作为映射的值类型。您可以相应地进行调整)
生成的类如下所示:
package com.example;
import java.util.HashMap;
import java.util.Map;
public class Example {
private Map<String, Integer> initAttributes = new HashMap<String, Integer>();
}
package.com.example;
导入java.util.HashMap;
导入java.util.Map;
公开课范例{
私有映射initAttributes=newhashmap();
}
在最简单的情况下,您可以直接将初始化附加到字段的创建中:
jc.field(JMod.PRIVATE, HashMap.class, "initAttributes")
.init(JExpr._new(codeModel.ref(HashMap.class)));
还有一些提示:
- 考虑到您通常应该这样做,最好使用“尽可能基本”的类型来声明变量。您几乎不应该将变量声明为
但基本上总是这样private HashMap map;
因为private Map map;
是与此相关的接口Map
- 您还可以在JCodeModel中添加泛型。这些通常涉及对某些类型的
的一些调用。这需要花费更多的精力,但它将生成可以编译的代码,而不会由于原始类型而导致警告shown
String
作为键类型,使用Integer
作为映射的值类型。您可以相应地进行调整)
生成的类如下所示:
package com.example;
import java.util.HashMap;
import java.util.Map;
public class Example {
private Map<String, Integer> initAttributes = new HashMap<String, Integer>();
}
package.com.example;
导入java.util.HashMap;
导入java.util.Map;
公开课范例{
私有映射initAttributes=newhashmap();
}