import java.util.HashMap;
import java.util.Map;
/**
* @descrition 枚举
* @since 2020-05-21 18:00
*/
public class EnumInterface {
String TYPE_FACE = "face";
String TYPE_HUMAN_BODY = "humanBody";
String TYPE_MOTOR_VEHICLE = "motorVehicle";
String TYPE_NON_MOTOR_VEHICLE = "nonMotorVehicle";
// 人脸特征
String[] faceCharacteristics = new String[]
{"Gender", "Hat", "Glass", "Mask"};
// 人体特征
String[] humanBodyCharacteristics = new String[]
{"SleeveStyle", "UpperColor", "UpperTexture", "LowerType", "LowerColor", "ShoesStyle", "ShoesColor",
"HairStyle", "Bag", "Appendix", "AgeRange", "HumanBodyGender"};
// 机动车特征
String[] motorVehicleCharacteristics = new String[]
{"PlateText", "VehicleClass", "VehicleColor", "VehicleHead", "PlateClass",
"PlateColor", "PlateState", "VehicleRoofItem", "VehicleFrontItem", "FaceCoveredItem", "SpecialVehicle"};
// 非机动车特征
String[] nonMotorVehicleCharacteristics = new String[]
{"VehicleType", "VehicleColor", "VehicleHead", "IllegalPassenger", "Gender", "UpperStyle", "UpperColor", "Headwear", "PackStyle"};
Map<String, String[]> search = new HashMap<String, String[]>() {
{
put(TYPE_FACE, faceCharacteristics);
put(TYPE_HUMAN_BODY, humanBodyCharacteristics);
put(TYPE_MOTOR_VEHICLE, motorVehicleCharacteristics);
put(TYPE_NON_MOTOR_VEHICLE, nonMotorVehicleCharacteristics);
}
};
}
这里的双括号”{{}}”用来初始化,使代码简洁易读。
第一层括弧实际是定义了一个匿名内部类 (Anonymous Inner Class),第二层括弧实际上是一个实例初始化块 (instance initializer block),这个块在内部匿名类构造时被执行。
同理,list也可这样赋值:
private List<String> list = new ArrayList<String>() {
{
add("tom");
add("jerry");
add("hkj");
}
};