private static final Map<String, ISMSSendAPI> handlerMap = new HashMap<>() 报错 Cannot infer type arguments for HashMap<>
时间: 2024-05-04 14:21:08 浏览: 17
这个错误是因为Java编译器无法推断HashMap的类型参数。可以尝试在HashMap后面指定类型参数,如下所示:
```
private static final Map<String, ISMSSendAPI> handlerMap = new HashMap<String, ISMSSendAPI>();
```
或者,你可以使用钻石操作符来让编译器推断类型参数:
```
private static final Map<String, ISMSSendAPI> handlerMap = new HashMap<>();
```
这样编译器就会根据变量声明的类型来自动推断HashMap的类型参数。
相关问题
Map<String, List<String>> map = new HashMap<>();取List
要从`Map<String, List<String>>`中获取`List<String>`,可以使用`Map`的`get()`方法来获取对应的`List`值。示例代码如下:
```java
Map<String, List<String>> map = new HashMap<>();
// 添加数据到map
map.put("key1", Arrays.asList("value1", "value2", "value3"));
map.put("key2", Arrays.asList("value4", "value5"));
// 获取指定key对应的List
List<String> list = map.get("key1");
System.out.println(list);
```
在上述代码中,我们创建了一个`Map`对象`map`,并向其添加了一些数据。然后,通过调用`map.get("key1")`,我们可以获取到对应的`List<String>`。最后,我们打印输出了这个`List`。
public static final Map<String, String> bathScheme = new HashMap<>(); 初始化写法
初始化写法有很多种,以下是几种常见的方法:
1. 使用静态代码块进行初始化:
```
public static final Map<String, String> bathScheme;
static {
bathScheme = new HashMap<>();
bathScheme.put("key1", "value1");
bathScheme.put("key2", "value2");
// 以此类推
}
```
2. 使用Collections.unmodifiableMap()方法进行初始化:
```
public static final Map<String, String> bathScheme = Collections.unmodifiableMap(new HashMap<String, String>() {{
put("key1", "value1");
put("key2", "value2");
// 以此类推
}});
```
3. 使用Map.of()方法进行初始化(需要Java 9及以上版本):
```
public static final Map<String, String> bathScheme = Map.of("key1", "value1", "key2", "value2");
```